From 1c5ced62213712b5b127be0215892b1696c97be4 Mon Sep 17 00:00:00 2001
From: Douglas Domingues <53982450+DominguesDouglas@users.noreply.github.com>
Date: Fri, 19 Jun 2026 09:13:56 -0300
Subject: [PATCH] N.N.N to section name

---
 doc/src/sgml/advanced.sgml                    |   6 +-
 doc/src/sgml/amcheck.sgml                     |   2 +-
 .../sgml/appendix-obsolete-default-roles.sgml |   4 +-
 doc/src/sgml/arch-dev.sgml                    |   8 +-
 doc/src/sgml/archive-modules.sgml             |  10 +-
 doc/src/sgml/array.sgml                       |   8 +-
 doc/src/sgml/backup.sgml                      |  32 +-
 doc/src/sgml/basic-archive.sgml               |   6 +-
 doc/src/sgml/bki.sgml                         |   4 +-
 doc/src/sgml/btree.sgml                       |   7 +-
 doc/src/sgml/catalogs.sgml                    |  65 ++--
 doc/src/sgml/charset.sgml                     |  45 ++-
 doc/src/sgml/citext.sgml                      |   4 +-
 doc/src/sgml/client-auth.sgml                 |  81 +++--
 doc/src/sgml/config.sgml                      | 292 +++++++++---------
 doc/src/sgml/contrib.sgml                     |   4 +-
 doc/src/sgml/custom-scan.sgml                 |   2 +-
 doc/src/sgml/datatype.sgml                    | 130 ++++----
 doc/src/sgml/datetime.sgml                    |   8 +-
 doc/src/sgml/dblink.sgml                      |   4 +-
 doc/src/sgml/ddl.sgml                         |  71 +++--
 doc/src/sgml/dict-int.sgml                    |   4 +-
 doc/src/sgml/dict-xsyn.sgml                   |   3 +-
 doc/src/sgml/dml.sgml                         |  18 +-
 doc/src/sgml/docguide.sgml                    |   3 +-
 doc/src/sgml/ecpg.sgml                        | 101 +++---
 doc/src/sgml/event-trigger.sgml               |   4 +-
 doc/src/sgml/extend.sgml                      |  70 ++---
 doc/src/sgml/external-projects.sgml           |   2 +-
 doc/src/sgml/fdwhandler.sgml                  |  10 +-
 doc/src/sgml/features.sgml                    |   4 +-
 doc/src/sgml/func/func-admin.sgml             |  30 +-
 doc/src/sgml/func/func-aggregate.sgml         |  34 +-
 doc/src/sgml/func/func-array.sgml             |  11 +-
 doc/src/sgml/func/func-binarystring.sgml      |  11 +-
 doc/src/sgml/func/func-comparisons.sgml       |  16 +-
 doc/src/sgml/func/func-datetime.sgml          |  63 ++--
 doc/src/sgml/func/func-enum.sgml              |   2 +-
 doc/src/sgml/func/func-event-triggers.sgml    |   3 +-
 doc/src/sgml/func/func-info.sgml              |  35 +--
 doc/src/sgml/func/func-json.sgml              |  32 +-
 doc/src/sgml/func/func-logical.sgml           |   3 +-
 doc/src/sgml/func/func-matching.sgml          |   8 +-
 doc/src/sgml/func/func-math.sgml              |   6 +-
 doc/src/sgml/func/func-range.sgml             |   2 +-
 doc/src/sgml/func/func-srf.sgml               |   4 +-
 doc/src/sgml/func/func-string.sgml            |  17 +-
 doc/src/sgml/func/func-subquery.sgml          |  19 +-
 doc/src/sgml/func/func-textsearch.sgml        |   4 +-
 doc/src/sgml/func/func-uuid.sgml              |   3 +-
 doc/src/sgml/func/func-window.sgml            |   9 +-
 doc/src/sgml/func/func-xml.sgml               |  17 +-
 doc/src/sgml/fuzzystrmatch.sgml               |  12 +-
 doc/src/sgml/gin.sgml                         |   9 +-
 doc/src/sgml/gist.sgml                        |   8 +-
 doc/src/sgml/glossary.sgml                    |   8 +-
 doc/src/sgml/high-availability.sgml           |  72 ++---
 doc/src/sgml/hstore.sgml                      |   3 +-
 doc/src/sgml/indexam.sgml                     |  12 +-
 doc/src/sgml/indices.sgml                     |  21 +-
 doc/src/sgml/information_schema.sgml          |  37 ++-
 doc/src/sgml/install-binaries.sgml            |   4 +-
 doc/src/sgml/installation.sgml                |  88 +++---
 doc/src/sgml/json.sgml                        |  30 +-
 doc/src/sgml/keywords.sgml                    |   5 +-
 doc/src/sgml/libpq.sgml                       |  79 ++---
 doc/src/sgml/logical-replication.sgml         |  86 +++---
 doc/src/sgml/logicaldecoding.sgml             |  39 +--
 doc/src/sgml/maintenance.sgml                 |  17 +-
 doc/src/sgml/manage-ag.sgml                   |  23 +-
 doc/src/sgml/monitoring.sgml                  |  64 ++--
 doc/src/sgml/mvcc.sgml                        |  23 +-
 doc/src/sgml/oauth-validators.sgml            |  11 +-
 doc/src/sgml/oid2name.sgml                    |   4 +-
 doc/src/sgml/pageinspect.sgml                 |   6 +-
 doc/src/sgml/parallel.sgml                    |   7 +-
 doc/src/sgml/passwordcheck.sgml               |   6 +-
 doc/src/sgml/perform.sgml                     |  15 +-
 doc/src/sgml/pgstatstatements.sgml            |   3 +-
 doc/src/sgml/planstats.sgml                   |  18 +-
 doc/src/sgml/plhandler.sgml                   |   3 +-
 doc/src/sgml/plperl.sgml                      |  14 +-
 doc/src/sgml/plpgsql.sgml                     | 133 ++++----
 doc/src/sgml/plpython.sgml                    |  16 +-
 doc/src/sgml/pltcl.sgml                       |   6 +-
 doc/src/sgml/postgres-fdw.sgml                |   3 +-
 doc/src/sgml/protocol.sgml                    |  85 +++--
 doc/src/sgml/queries.sgml                     |  34 +-
 doc/src/sgml/query.sgml                       |   4 +-
 doc/src/sgml/rangetypes.sgml                  |   7 +-
 .../sgml/ref/alter_default_privileges.sgml    |   3 +-
 doc/src/sgml/ref/alter_index.sgml             |   4 +-
 doc/src/sgml/ref/alter_statistics.sgml        |   4 +-
 doc/src/sgml/ref/alter_subscription.sgml      |  15 +-
 doc/src/sgml/ref/alter_system.sgml            |   2 +-
 doc/src/sgml/ref/alter_table.sgml             |  23 +-
 doc/src/sgml/ref/analyze.sgml                 |   4 +-
 doc/src/sgml/ref/call.sgml                    |   2 +-
 doc/src/sgml/ref/checkpoint.sgml              |   6 +-
 doc/src/sgml/ref/cluster.sgml                 |   2 +-
 doc/src/sgml/ref/clusterdb.sgml               |   3 +-
 doc/src/sgml/ref/copy.sgml                    |   2 +-
 doc/src/sgml/ref/create_access_method.sgml    |   5 +-
 doc/src/sgml/ref/create_aggregate.sgml        |  12 +-
 doc/src/sgml/ref/create_collation.sgml        |   9 +-
 doc/src/sgml/ref/create_database.sgml         |  11 +-
 doc/src/sgml/ref/create_domain.sgml           |   3 +-
 doc/src/sgml/ref/create_event_trigger.sgml    |   4 +-
 doc/src/sgml/ref/create_extension.sgml        |   3 +-
 doc/src/sgml/ref/create_foreign_table.sgml    |   4 +-
 doc/src/sgml/ref/create_function.sgml         |  12 +-
 doc/src/sgml/ref/create_index.sgml            |  32 +-
 doc/src/sgml/ref/create_language.sgml         |   4 +-
 .../sgml/ref/create_materialized_view.sgml    |  10 +-
 doc/src/sgml/ref/create_opclass.sgml          |   4 +-
 doc/src/sgml/ref/create_operator.sgml         |   4 +-
 doc/src/sgml/ref/create_procedure.sgml        |   4 +-
 doc/src/sgml/ref/create_publication.sgml      |  12 +-
 doc/src/sgml/ref/create_role.sgml             |   5 +-
 doc/src/sgml/ref/create_rule.sgml             |   2 +-
 doc/src/sgml/ref/create_sequence.sgml         |   3 +-
 doc/src/sgml/ref/create_server.sgml           |   2 +-
 doc/src/sgml/ref/create_subscription.sgml     |  10 +-
 doc/src/sgml/ref/create_table.sgml            |  37 +--
 doc/src/sgml/ref/create_table_as.sgml         |   9 +-
 doc/src/sgml/ref/create_tablespace.sgml       |   5 +-
 doc/src/sgml/ref/create_trigger.sgml          |  11 +-
 doc/src/sgml/ref/create_type.sgml             |  16 +-
 doc/src/sgml/ref/createdb.sgml                |  11 +-
 doc/src/sgml/ref/createuser.sgml              |   3 +-
 doc/src/sgml/ref/declare.sgml                 |  10 +-
 doc/src/sgml/ref/delete.sgml                  |   4 +-
 doc/src/sgml/ref/drop_role.sgml               |   3 +-
 doc/src/sgml/ref/dropdb.sgml                  |   3 +-
 doc/src/sgml/ref/dropuser.sgml                |   3 +-
 doc/src/sgml/ref/fetch.sgml                   |   6 +-
 doc/src/sgml/ref/grant.sgml                   |   9 +-
 doc/src/sgml/ref/initdb.sgml                  |  34 +-
 doc/src/sgml/ref/insert.sgml                  |  10 +-
 doc/src/sgml/ref/lock.sgml                    |   7 +-
 doc/src/sgml/ref/merge.sgml                   |   8 +-
 doc/src/sgml/ref/pg_amcheck.sgml              |   3 +-
 doc/src/sgml/ref/pg_basebackup.sgml           |  15 +-
 doc/src/sgml/ref/pg_combinebackup.sgml        |   3 +-
 doc/src/sgml/ref/pg_createsubscriber.sgml     |   4 +-
 doc/src/sgml/ref/pg_dump.sgml                 |  18 +-
 doc/src/sgml/ref/pg_dumpall.sgml              |   7 +-
 doc/src/sgml/ref/pg_isready.sgml              |   3 +-
 doc/src/sgml/ref/pg_receivewal.sgml           |   9 +-
 doc/src/sgml/ref/pg_recvlogical.sgml          |   8 +-
 doc/src/sgml/ref/pg_restore.sgml              |   8 +-
 doc/src/sgml/ref/pg_rewind.sgml               |   4 +-
 doc/src/sgml/ref/pgarchivecleanup.sgml        |   2 +-
 doc/src/sgml/ref/pgbench.sgml                 |  35 +--
 doc/src/sgml/ref/pgupgrade.sgml               |   3 +-
 doc/src/sgml/ref/postgres-ref.sgml            |  21 +-
 doc/src/sgml/ref/prepare_transaction.sgml     |   5 +-
 doc/src/sgml/ref/psql-ref.sgml                |  53 ++--
 doc/src/sgml/ref/reindex.sgml                 |   4 +-
 doc/src/sgml/ref/reindexdb.sgml               |   3 +-
 doc/src/sgml/ref/revoke.sgml                  |   3 +-
 doc/src/sgml/ref/select.sgml                  |  47 ++-
 doc/src/sgml/ref/select_into.sgml             |   4 +-
 doc/src/sgml/ref/set.sgml                     |   3 +-
 doc/src/sgml/ref/set_transaction.sgml         |   7 +-
 doc/src/sgml/ref/vacuum.sgml                  |  10 +-
 doc/src/sgml/ref/vacuumdb.sgml                |  10 +-
 doc/src/sgml/ref/values.sgml                  |   4 +-
 doc/src/sgml/regress.sgml                     |  13 +-
 doc/src/sgml/replication-origins.sgml         |   2 +-
 doc/src/sgml/rowtypes.sgml                    |   6 +-
 doc/src/sgml/rules.sgml                       |   7 +-
 doc/src/sgml/runtime.sgml                     |  44 ++-
 doc/src/sgml/sepgsql.sgml                     |   6 +-
 doc/src/sgml/sources.sgml                     |   3 +-
 doc/src/sgml/spgist.sgml                      |  10 +-
 doc/src/sgml/start.sgml                       |   2 +-
 doc/src/sgml/storage.sgml                     |  30 +-
 doc/src/sgml/stylesheet-common.xsl            |   2 +-
 doc/src/sgml/stylesheet-html-common.xsl       |  15 +
 doc/src/sgml/syntax.sgml                      |  57 ++--
 doc/src/sgml/system-views.sgml                |  33 +-
 doc/src/sgml/tableam.sgml                     |   3 +-
 doc/src/sgml/tablesample-method.sgml          |   8 +-
 doc/src/sgml/textsearch.sgml                  |  31 +-
 doc/src/sgml/trigger.sgml                     |  10 +-
 doc/src/sgml/typeconv.sgml                    |  14 +-
 doc/src/sgml/user-manag.sgml                  |  21 +-
 doc/src/sgml/uuid-ossp.sgml                   |   2 +-
 doc/src/sgml/vacuumlo.sgml                    |   4 +-
 doc/src/sgml/wal.sgml                         |   9 +-
 doc/src/sgml/xact.sgml                        |   4 +-
 doc/src/sgml/xaggr.sgml                       |  10 +-
 doc/src/sgml/xfunc.sgml                       |  66 ++--
 doc/src/sgml/xindex.sgml                      |  31 +-
 doc/src/sgml/xplang.sgml                      |   8 +-
 doc/src/sgml/xtypes.sgml                      |   4 +-
 197 files changed, 1632 insertions(+), 1889 deletions(-)

diff --git a/doc/src/sgml/advanced.sgml b/doc/src/sgml/advanced.sgml
index 3286c2cf0b2..0eab9ca2c18 100644
--- a/doc/src/sgml/advanced.sgml
+++ b/doc/src/sgml/advanced.sgml
@@ -571 +571 @@ SELECT sum(salary) OVER w, avg(salary) OVER w
-    More details about window functions can be found in
+    More details can be found in
@@ -710 +710,2 @@ SELECT name, elevation
-     Although inheritance is frequently useful, it has not been integrated
+     Although <xref linkend="ddl-inherit"/> is frequently useful, it has not
+     been integrated
@@ -712 +712,0 @@ SELECT name, elevation
-     See <xref linkend="ddl-inherit"/> for more detail.
diff --git a/doc/src/sgml/amcheck.sgml b/doc/src/sgml/amcheck.sgml
index 08006856579..1d26dfc0593 100644
--- a/doc/src/sgml/amcheck.sgml
+++ b/doc/src/sgml/amcheck.sgml
@@ -484 +484 @@ SET client_min_messages = DEBUG1;
-     linkend="regress-run"/> for details on running the tests.
+     linkend="regress-run"/> for details.
diff --git a/doc/src/sgml/appendix-obsolete-default-roles.sgml b/doc/src/sgml/appendix-obsolete-default-roles.sgml
index f5133f95760..f7179307ead 100644
--- a/doc/src/sgml/appendix-obsolete-default-roles.sgml
+++ b/doc/src/sgml/appendix-obsolete-default-roles.sgml
@@ -17,2 +17,2 @@
-    See <xref linkend="predefined-roles"/> for current documentation regarding
-    Predefined Roles, and <link linkend="release-prior">the release notes for
+    See <xref linkend="predefined-roles"/> for current documentation, and
+    <link linkend="release-prior">the release notes for
diff --git a/doc/src/sgml/arch-dev.sgml b/doc/src/sgml/arch-dev.sgml
index 06b6e2a8493..18bbd249663 100644
--- a/doc/src/sgml/arch-dev.sgml
+++ b/doc/src/sgml/arch-dev.sgml
@@ -140,2 +140,2 @@
-    <productname>PostgreSQL</productname> protocol described in
-    <xref linkend="protocol"/>.  Many clients are based on the
+    <productname>PostgreSQL</productname> <xref linkend="protocol"/>.  Many
+    clients are based on the
@@ -351,2 +351,2 @@
-     of time, <productname>PostgreSQL</productname> uses a <firstterm>Genetic
-     Query Optimizer</firstterm> (see <xref linkend="geqo"/>) when the number of joins
+     of time, <productname>PostgreSQL</productname> uses a
+     <xref linkend="geqo"/> when the number of joins
diff --git a/doc/src/sgml/archive-modules.sgml b/doc/src/sgml/archive-modules.sgml
index 10ec96eae96..1edd8a47f25 100644
--- a/doc/src/sgml/archive-modules.sgml
+++ b/doc/src/sgml/archive-modules.sgml
@@ -10,2 +10,2 @@
-  PostgreSQL provides infrastructure to create custom modules for continuous
-  archiving (see <xref linkend="continuous-archiving"/>).  While archiving via
+  PostgreSQL provides infrastructure to create custom modules for
+  <xref linkend="continuous-archiving"/>.  While archiving via
@@ -27,3 +27,3 @@
-  Archiving modules must at least consist of an initialization function (see
-  <xref linkend="archive-module-init"/>) and the required callbacks (see
-  <xref linkend="archive-module-callbacks"/>).  However, archive modules are
+  Archiving modules must at least consist of
+  <xref linkend="archive-module-init"/> and the required
+  <xref linkend="archive-module-callbacks"/>.  However, archive modules are
diff --git a/doc/src/sgml/array.sgml b/doc/src/sgml/array.sgml
index ce338c770c9..8e850a82568 100644
--- a/doc/src/sgml/array.sgml
+++ b/doc/src/sgml/array.sgml
@@ -194,2 +194 @@ INSERT INTO sal_emp
-  double quoted as they would be in an array literal.  The <literal>ARRAY</literal>
-  constructor syntax is discussed in more detail in
+  double quoted as they would be in an array literal.  For more details, see
@@ -660 +659 @@ SELECT * FROM sal_emp WHERE pay_by_quarter &amp;&amp; ARRAY[10000];
-  This and other array operators are further described in
+  For more information, see
@@ -789,2 +788 @@ SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2
-   The <literal>ARRAY</literal> constructor syntax (see
-   <xref linkend="sql-syntax-array-constructors"/>) is often easier to work
+   <xref linkend="sql-syntax-array-constructors"/> is often easier to work
diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml
index 168444eccc5..61478f724d1 100644
--- a/doc/src/sgml/backup.sgml
+++ b/doc/src/sgml/backup.sgml
@@ -81,2 +81 @@ pg_dump <replaceable class="parameter">dbname</replaceable> &gt; <replaceable cl
-   client authentication mechanisms (which are described in <xref
-   linkend="client-authentication"/>).
+   <xref linkend="client-authentication"/> mechanisms.
@@ -386,2 +385 @@ tar -cf backup.tar /usr/local/pgsql/data
-      Information about stopping the server can be found in
-      <xref linkend="server-shutdown"/>.  Needless to say, you
+      See <xref linkend="server-shutdown"/> for details.  Needless to say, you
@@ -445,2 +443,2 @@ tar -cf backup.tar /usr/local/pgsql/data
-   Another option is to perform a continuous archiving base backup (<xref
-   linkend="backup-base-backup"/>) because such backups are immune to file
+   Another option is to perform a continuous archiving base backup
+   because such backups are immune to file
@@ -449 +447,3 @@ tar -cf backup.tar /usr/local/pgsql/data
-   continuous archive recovery (<xref linkend="backup-pitr-recovery"/>).
+   continuous archive recovery.  See
+   <xref linkend="backup-base-backup"/> and
+   <xref linkend="backup-pitr-recovery"/> for more information.
@@ -668 +668 @@ test ! -f /mnt/server/archivedir/00000001000000A900000065 &amp;&amp; cp pg_wal/0
-    useful server resources.  For more information about archive modules, see
+    useful server resources.  For more information, see
@@ -813,2 +813,2 @@ test ! -f /mnt/server/archivedir/00000001000000A900000065 &amp;&amp; cp pg_wal/0
-    required, you can also make a base backup using the low level API
-    (see <xref linkend="backup-lowlevel-base-backup"/>).
+    required, you can also make a base backup as described in
+    <xref linkend="backup-lowlevel-base-backup"/>.
@@ -914,2 +914,2 @@ test ! -f /mnt/server/archivedir/00000001000000A900000065 &amp;&amp; cp pg_wal/0
-    and perform recovery, as described in
-    <xref linkend="backup-pitr-recovery" />. The requirement to have earlier
+    and perform recovery. See <xref linkend="backup-pitr-recovery"/> for more
+    information. The requirement to have earlier
@@ -1007,2 +1007 @@ SELECT pg_backup_start(label => 'label', fast => false);
-     <xref linkend="backup-lowlevel-base-backup-data"/> for things to
-     consider during this backup.
+     <xref linkend="backup-lowlevel-base-backup-data"/> for more information.
@@ -1251,3 +1250,2 @@ SELECT * FROM pg_backup_stop(wait_for_archive => true);
-     Set recovery configuration settings in
-     <filename>postgresql.conf</filename> (see <xref
-     linkend="runtime-config-wal-archive-recovery"/>) and create a file
+     Set <xref linkend="runtime-config-wal-archive-recovery"/> in
+     <filename>postgresql.conf</filename> and create a file
diff --git a/doc/src/sgml/basic-archive.sgml b/doc/src/sgml/basic-archive.sgml
index b4d43ced203..8ab8790390b 100644
--- a/doc/src/sgml/basic-archive.sgml
+++ b/doc/src/sgml/basic-archive.sgml
@@ -11 +11,2 @@
-  <filename>basic_archive</filename> is an example of an archive module.  This
+  <filename>basic_archive</filename> is an example of
+  <xref linkend="archive-modules"/>.  This
@@ -14,2 +15 @@
-  developing your own archive module.  For more information about archive
-  modules, see <xref linkend="archive-modules"/>.
+  developing your own archive module.
diff --git a/doc/src/sgml/bki.sgml b/doc/src/sgml/bki.sgml
index 087a6827b00..ea9f6833a95 100644
--- a/doc/src/sgml/bki.sgml
+++ b/doc/src/sgml/bki.sgml
@@ -239,2 +239,2 @@
-      the bootstrap scanner, according to the same rules as for escape string
-      constants (see <xref linkend="sql-syntax-strings-escape"/>); for
+      the bootstrap scanner, according to the same rules as for
+      <xref linkend="sql-syntax-strings-escape"/>; for
diff --git a/doc/src/sgml/btree.sgml b/doc/src/sgml/btree.sgml
index 027361f20bb..cd2e0e9c4df 100644
--- a/doc/src/sgml/btree.sgml
+++ b/doc/src/sgml/btree.sgml
@@ -642,2 +642 @@ options(<replaceable>relopts</replaceable> <type>local_relopts *</type>) returns
-   pages use the standard page format described in <xref
-    linkend="storage-page-layout"/>.
+   pages use the standard <xref linkend="storage-page-layout"/>.
@@ -704 +703 @@ options(<replaceable>relopts</replaceable> <type>local_relopts *</type>) returns
-   index cleanup performed by autovacuum workers, which is triggered
+   index cleanup performed by <xref linkend="autovacuum"/>, which is triggered
@@ -706 +705 @@ options(<replaceable>relopts</replaceable> <type>local_relopts *</type>) returns
-   thresholds are exceeded (see <xref linkend="autovacuum"/>).
+   thresholds are exceeded.
diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml
index 4b474c13917..c0dce5fc28d 100644
--- a/doc/src/sgml/catalogs.sgml
+++ b/doc/src/sgml/catalogs.sgml
@@ -701,2 +701,2 @@
-   Currently, only tables and indexes have access methods. The requirements for table
-   and index access methods are discussed in detail in <xref linkend="tableam"/> and
+   Currently, only tables and indexes have access methods. The requirements for
+   these are discussed in detail in <xref linkend="tableam"/> and
@@ -1593,2 +1593 @@
-       Role bypasses every row-level security policy, see
-       <xref linkend="ddl-rowsecurity"/> for more information.
+       Role bypasses all <xref linkend="ddl-rowsecurity"/>.
@@ -2323 +2322 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -2370 +2369,2 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   available collations, which are essentially mappings from an SQL
+   available <xref linkend="collation"/>, which are essentially mappings from an
+   SQL
@@ -2372 +2371,0 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   See <xref linkend="collation"/> for more information.
@@ -3241 +3240 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -3885,2 +3884,2 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   The catalog <structname>pg_event_trigger</structname> stores event triggers.
-   See <xref linkend="event-triggers"/> for more information.
+   The catalog <structname>pg_event_trigger</structname> stores
+   <xref linkend="event-triggers"/>.
@@ -4202 +4201 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -4310 +4309 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -4840,2 +4839 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       The initial access privileges; see
-       <xref linkend="ddl-priv"/> for details
+       The initial access <xref linkend="ddl-priv"/>
@@ -4976 +4974 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -5125 +5123 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -5196 +5194 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -5686 +5684 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -6324 +6322 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -6851 +6849 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   publications created in the database.  For more on publications see
+   publications created in the database.  For more information, see
@@ -8526,2 +8524,2 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   logical replication subscriptions.  For more information about logical
-   replication see <xref linkend="logical-replication"/>.
+   logical replication subscriptions.  For more information, see
+   <xref linkend="logical-replication"/>.
@@ -8786,2 +8784,2 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       publications defined in the upstream database. For more on publications
-       see <xref linkend="logical-replication-publication"/>.
+       publications defined in the upstream database. For more information, see
+       <xref linkend="logical-replication-publication"/>.
@@ -8972 +8970 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
@@ -9351,2 +9349 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   <productname>PostgreSQL</productname>'s text search features are
-   described at length in <xref linkend="textsearch"/>.
+   For details, see <xref linkend="textsearch"/>.
@@ -9438,2 +9435 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   <productname>PostgreSQL</productname>'s text search features are
-   described at length in <xref linkend="textsearch"/>.
+   For details, see <xref linkend="textsearch"/>.
@@ -9520,2 +9516 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   <productname>PostgreSQL</productname>'s text search features are
-   described at length in <xref linkend="textsearch"/>.
+   For details, see <xref linkend="textsearch"/>.
@@ -9617,2 +9612 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   <productname>PostgreSQL</productname>'s text search features are
-   described at length in <xref linkend="textsearch"/>.
+   For details, see <xref linkend="textsearch"/>.
@@ -9735,2 +9729 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-   <productname>PostgreSQL</productname>'s text search features are
-   described at length in <xref linkend="textsearch"/>.
+   For details, see <xref linkend="textsearch"/>.
@@ -10274 +10267 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
-       Access privileges; see <xref linkend="ddl-priv"/> for details
+       Access <xref linkend="ddl-priv"/>
diff --git a/doc/src/sgml/charset.sgml b/doc/src/sgml/charset.sgml
index 746e40bb9d2..ba4f8ac4295 100644
--- a/doc/src/sgml/charset.sgml
+++ b/doc/src/sgml/charset.sgml
@@ -15,2 +15,2 @@
-      Using the locale features of the operating system to provide
-      locale-specific collation order, number formatting, translated
+      Using <xref linkend="locale"/> of the operating system to provide
+      locale-specific <xref linkend="collation"/>, number formatting, translated
@@ -18,2 +17,0 @@
-      This is covered in <xref linkend="locale"/> and
-      <xref linkend="collation"/>.
@@ -25 +23 @@
-      Providing a number of different character sets to support storing text
+      Providing <xref linkend="multibyte"/> to support storing text
@@ -28 +25,0 @@
-      This is covered in <xref linkend="multibyte"/>.
@@ -150,2 +147 @@ initdb --locale=sv_SE
-    (But you can alleviate this restriction using collations, as discussed
-    in <xref linkend="collation"/>.)
+    (But you can alleviate this restriction using <xref linkend="collation"/>.)
@@ -270 +266,2 @@ initdb --locale=sv_SE
-    operator classes exist. These allow the creation of an index that
+    <xref linkend="indexes-opclass"/> exist. These allow the creation of an
+    index that
@@ -272,2 +269 @@ initdb --locale=sv_SE
-    locale comparison rules. Refer to <xref linkend="indexes-opclass"/>
-    for more information.  Another approach is to create indexes using
+    locale comparison rules.  Another approach is to create indexes using
@@ -325,2 +321,2 @@ initdb --locale=sv_SE
-      SQL object called <firstterm>collation</firstterm> and is explained in
-      <xref linkend="collation"/>.  Use this for example to sort data in
+      SQL object called <xref linkend="collation"/>.  Use this for example to
+      sort data in
@@ -846 +842,2 @@ SELECT * FROM test1 ORDER BY a || b COLLATE "fr_FR";
-    is tied to a character set encoding (see <xref linkend="multibyte"/>).
+    is tied to a character set encoding. See <xref linkend="multibyte"/> for
+    more information.
@@ -1158,3 +1155,3 @@ CREATE COLLATION german (provider = icu, locale = 'de-DE');
-     New ICU collations can customize collation behavior extensively by
-     including collation attributes in the language tag. See <xref
-     linkend="icu-custom-collations"/> for details and examples.
+     New <xref linkend="icu-custom-collations"/> can customize collation
+     behavior extensively by
+     including collation attributes in the language tag.
@@ -1246 +1243,2 @@ CREATE COLLATION ignore_accents (provider = icu, locale = 'und-u-ks-level1-kc-tr
-    collations with collation settings as a part of the language tag. These
+    collations with <xref linkend="icu-collation-settings"/> as a part of the
+    language tag. These
@@ -1266,2 +1264 @@ SELECT 'w;x*y-z' = 'wxyz' COLLATE num_ignore_punct; -- true
-    Many of the available options are described in <xref
-    linkend="icu-collation-settings"/>, or see <xref
+    See <xref
@@ -1719 +1716 @@ ORDER BY c COLLATE ebcdic;
-     This section (<xref linkend="icu-custom-collations"/>) is only a brief
+     <xref linkend="icu-custom-collations"/> is only a brief
@@ -2313,2 +2310 @@ $ <userinput>psql -l</userinput>
-     character sets (<xref linkend="multibyte-conversions-supported"/>
-     shows which ones).
+     character sets; see <xref linkend="multibyte-conversions-supported"/>.
@@ -2340 +2336,2 @@ $ <userinput>psql -l</userinput>
-        <application>libpq</application> (<xref linkend="libpq-control"/>) has functions to control the client encoding.
+        <application>libpq</application> provides
+        <xref linkend="libpq-control"/> for the client encoding.
diff --git a/doc/src/sgml/citext.sgml b/doc/src/sgml/citext.sgml
index 8322885661e..48ca797c16d 100644
--- a/doc/src/sgml/citext.sgml
+++ b/doc/src/sgml/citext.sgml
@@ -19,2 +19,2 @@
-   Consider using <firstterm>nondeterministic collations</firstterm> (see
-   <xref linkend="collation-nondeterministic"/>) instead of this module.  They
+   Consider using <xref linkend="collation-nondeterministic"/> instead of this
+   module.  They
diff --git a/doc/src/sgml/client-auth.sgml b/doc/src/sgml/client-auth.sgml
index e4e65f8feb1..0d162268cfb 100644
--- a/doc/src/sgml/client-auth.sgml
+++ b/doc/src/sgml/client-auth.sgml
@@ -291 +291 @@ include_dir         <replaceable>directory</replaceable>
-       (See <xref linkend="posix-syntax-details"/> for details of
+       (See <xref linkend="posix-syntax-details"/> for
@@ -324 +324 @@ include_dir         <replaceable>directory</replaceable>
-       (See <xref linkend="posix-syntax-details"/> for details of
+       (See <xref linkend="posix-syntax-details"/> for
@@ -482,3 +482,3 @@ include_dir         <replaceable>directory</replaceable>
-       Specifies the authentication method to use when a connection matches
-       this record. The possible choices are summarized here; details
-       are in <xref linkend="auth-methods"/>.  All the options
+       Specifies which <xref linkend="auth-methods"/> to use when a connection
+       matches
+       this record.  The possible choices are summarized here.  All the options
@@ -520,2 +520,3 @@ include_dir         <replaceable>directory</replaceable>
-          Perform SCRAM-SHA-256 authentication to verify the user's
-          password. See <xref linkend="auth-password"/> for details.
+          Perform SCRAM-SHA-256 <xref linkend="auth-password"/> to verify the
+          user's
+          password.
@@ -530,3 +531,3 @@ include_dir         <replaceable>directory</replaceable>
-          Perform SCRAM-SHA-256 or MD5 authentication to verify the
-          user's password. See <xref linkend="auth-password"/>
-          for details.
+          Perform SCRAM-SHA-256 or MD5 <xref linkend="auth-password"/> to verify
+          the
+          user's password.
@@ -551 +552 @@ include_dir         <replaceable>directory</replaceable>
-          authentication.
+          <xref linkend="auth-password"/>.
@@ -554 +554,0 @@ include_dir         <replaceable>directory</replaceable>
-          See <xref linkend="auth-password"/> for details.
@@ -563,3 +563,3 @@ include_dir         <replaceable>directory</replaceable>
-          Use GSSAPI to authenticate the user. This is only
-          available for TCP/IP connections. See <xref
-          linkend="gssapi-auth"/> for details.  It can be used in conjunction
+          Use <xref linkend="gssapi-auth"/> to authenticate the user. This is
+          only
+          available for TCP/IP connections. It can be used in conjunction
@@ -575,3 +575,2 @@ include_dir         <replaceable>directory</replaceable>
-          Use SSPI to authenticate the user. This is only
-          available on Windows. See <xref
-          linkend="sspi-auth"/> for details.
+          Use <xref linkend="sspi-auth"/> to authenticate the user. This is only
+          available on Windows.
@@ -589 +588 @@ include_dir         <replaceable>directory</replaceable>
-          Ident authentication can only be used on TCP/IP
+          <xref linkend="auth-ident"/> can only be used on TCP/IP
@@ -592 +590,0 @@ include_dir         <replaceable>directory</replaceable>
-          See <xref linkend="auth-ident"/> for details.
@@ -613,2 +611,2 @@ include_dir         <replaceable>directory</replaceable>
-          Authenticate using an <acronym>LDAP</acronym> server. See <xref
-          linkend="auth-ldap"/> for details.
+          Authenticate using an <acronym>LDAP</acronym> server, as described
+          in <xref linkend="auth-ldap"/>.
@@ -623,2 +621,2 @@ include_dir         <replaceable>directory</replaceable>
-          Authenticate using SSL client certificates. See
-          <xref linkend="auth-cert"/> for details.
+          Authenticate using SSL client certificates, as described in
+          <xref linkend="auth-cert"/>.
@@ -634,2 +632,2 @@ include_dir         <replaceable>directory</replaceable>
-          (PAM) service provided by the operating system.  See <xref
-          linkend="auth-pam"/> for details.
+          (PAM) service provided by the operating system, as described
+          in <xref linkend="auth-pam"/>.
@@ -644,2 +642,3 @@ include_dir         <replaceable>directory</replaceable>
-          Authenticate using the BSD Authentication service provided by the
-          operating system. See <xref linkend="auth-bsd"/> for details.
+          Authenticate using the <xref linkend="auth-bsd"/> service provided by
+          the
+          operating system.
@@ -654,2 +653,3 @@ include_dir         <replaceable>directory</replaceable>
-          Authorize and optionally authenticate using a third-party OAuth 2.0
-          identity provider. See <xref linkend="auth-oauth"/> for details.
+          Authorize and optionally authenticate using a third-party
+          <xref linkend="auth-oauth"/>
+          identity provider.
@@ -685,2 +685,2 @@ include_dir         <replaceable>directory</replaceable>
-       This behavior is similar to the <literal>cert</literal> authentication
-       method (see <xref linkend="auth-cert"/>) but enables pairing
+       This behavior is similar to <xref linkend="auth-cert"/> but enables
+       pairing
@@ -994 +994 @@ local   db1,db2,@demodbs  all                                   scram-sha-256
-   (See <xref linkend="posix-syntax-details"/> for details of
+   (See <xref linkend="posix-syntax-details"/> for
@@ -1457,2 +1457,2 @@ omicron         bryanh                  guest1
-        stripped off before being passed through the user name mapping
-        (<xref linkend="auth-username-maps"/>). This is discouraged and is
+        stripped off before being passed through
+        <xref linkend="auth-username-maps"/>. This is discouraged and is
@@ -1536,2 +1536 @@ omicron         bryanh                  guest1
-    <productname>GSSAPI</productname> does; see <xref linkend="gssapi-auth"/>
-    for details.
+    <xref linkend="gssapi-auth"/> does.
@@ -1549,2 +1548,2 @@ omicron         bryanh                  guest1
-        stripped off before being passed through the user name mapping
-        (<xref linkend="auth-username-maps"/>). This is discouraged and is
+        stripped off before being passed through
+        <xref linkend="auth-username-maps"/>. This is discouraged and is
@@ -1648 +1647 @@ omicron         bryanh                  guest1
-     peer authentication (see <xref linkend="auth-peer"/>) will be
+     <xref linkend="auth-peer"/> will be
@@ -2389 +2388 @@ host ... ldap ldapbasedn="dc=example,dc=net"
-        information on validators).  This parameter is required.
+        information).  This parameter is required.
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index fa566c9e553..4e287aaceda 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -511,2 +511 @@ include_dir 'conf.d'
-      client authentication (their use is discussed in <xref
-      linkend="client-authentication"/>) and SSL host configuration.
+      <xref linkend="client-authentication"/> and SSL host configuration.
@@ -575 +574,2 @@ include_dir 'conf.d'
-         Specifies the configuration file for user name mapping
+         Specifies the configuration file for
+         <xref linkend="auth-username-maps"/>
@@ -578 +577,0 @@ include_dir 'conf.d'
-         See also <xref linkend="auth-username-maps"/>.
@@ -689,2 +688,2 @@ include_dir 'conf.d'
-         While client authentication (<xref
-         linkend="client-authentication"/>) allows fine-grained control
+         While <xref
+         linkend="client-authentication"/> allows fine-grained control
@@ -1292,2 +1291,2 @@ include_dir 'conf.d'
-        implementations. For more information on implementing OAuth validators,
-        see <xref linkend="oauth-validators" />.
+        implementations. For more information, see
+        <xref linkend="oauth-validators" />.
@@ -1861,2 +1860,2 @@ include_dir 'conf.d'
-        spent on memory management, increasing performance. For more details about
-        using huge pages on Linux, see <xref linkend="linux-huge-pages"/>.
+        spent on memory management, increasing performance. For more details,
+        see <xref linkend="linux-huge-pages"/>.
@@ -2341 +2340 @@ include_dir 'conf.d'
-        Specifies the shared memory implementation that the server
+        Specifies the <xref linkend="sysvipc"/> implementation that the server
@@ -2352,2 +2351 @@ include_dir 'conf.d'
-        non-default kernel settings to allow for large allocations (see <xref
-        linkend="sysvipc"/>).
+        non-default kernel settings to allow for large allocations.
@@ -3132 +3130 @@ include_dir 'conf.d'
-         For more information on parallel query, see
+         For more information, see
@@ -3615,2 +3613 @@ include_dir 'conf.d'
-        WAL archiving for point-in-time recovery (PITR)
-        (see <xref linkend="continuous-archiving"/>).
+        WAL archiving for <xref linkend="continuous-archiving"/>.
@@ -4052,4 +4049,5 @@ include_dir 'conf.d'
-        the WAL archiver is enabled also during archive recovery or standby
-        mode. In <literal>always</literal> mode, all files restored from the archive
-        or streamed with streaming physical replication will be archived (again). See
-        <xref linkend="continuous-archiving-in-standby"/> for details.
+        the WAL archiver is enabled also during
+        <xref linkend="continuous-archiving-in-standby"/>.
+        In <literal>always</literal> mode, all files restored from the archive
+        or streamed with streaming physical replication will be archived
+        (again).
@@ -4087,2 +4085,2 @@ include_dir 'conf.d'
-        exit status only if it succeeds. For more information see
-        <xref linkend="backup-archiving-wal"/>.
+        exit status only if it succeeds; see
+        <xref linkend="backup-archiving-wal"/> for more details.
@@ -4119 +4117,2 @@ include_dir 'conf.d'
-        The library to use for archiving completed WAL file segments.  If set to
+        The library to use for <xref linkend="backup-archiving-wal"/>.  If set
+        to
@@ -4124,4 +4123,4 @@ include_dir 'conf.d'
-        shared library is used for archiving. The WAL archiver process is
-        restarted by the postmaster when this parameter changes. For more
-        information, see <xref linkend="backup-archiving-wal"/> and
-        <xref linkend="archive-modules"/>.
+        shared library is used for archiving; see
+        <xref linkend="archive-modules"/> for the API.
+        The WAL archiver process is
+        restarted by the postmaster when this parameter changes.
@@ -4268,2 +4267,3 @@ include_dir 'conf.d'
-     parameters from this section and <xref
-     linkend="runtime-config-replication-standby"/> are of interest.
+     parameters from <xref
+     linkend="runtime-config-replication-standby"/> are of interest, as well as
+     those in this section.
@@ -4281,2 +4281,3 @@ include_dir 'conf.d'
-     In this mode, the parameters from both this section and <xref
-     linkend="runtime-config-wal-recovery-target"/> will be used.
+     In this mode, the parameters from <xref
+     linkend="runtime-config-wal-recovery-target"/> and this section will be
+     used.
@@ -4308,2 +4309 @@ include_dir 'conf.d'
-        used by warm-standby configurations
-        (see <xref linkend="warm-standby"/>).
+        used by <xref linkend="warm-standby"/>.
@@ -4362,2 +4362,2 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
-        <varname>archive_cleanup_command</varname> would typically be used in a
-        warm-standby configuration (see <xref linkend="warm-standby"/>).
+        <varname>archive_cleanup_command</varname> would typically be used in
+        <xref linkend="warm-standby"/>.
@@ -4738,5 +4738,3 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
-     <firstterm>streaming replication</firstterm>,
-     both <firstterm>physical replication</firstterm>
-     (see <xref linkend="streaming-replication"/>) and
-     <firstterm>logical replication</firstterm> (see
-     <xref linkend="logical-replication"/>).
+     <xref linkend="streaming-replication"/>,
+     both <firstterm>physical replication</firstterm> and
+     <xref linkend="logical-replication"/>.
@@ -4748,2 +4746,2 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
-     are always receivers of replicated data.  When cascading replication
-     (see <xref linkend="cascading-replication"/>) is used, standby servers
+     are always receivers of replicated data.  When
+     <xref linkend="cascading-replication"/> is used, standby servers
@@ -4762,3 +4760,2 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
-     the following sections refer to publishers as "senders". For more details
-     about logical replication configuration settings refer to
-     <xref linkend="logical-replication-config"/>.
+     the following sections refer to publishers as "senders". For more details,
+     refer to <xref linkend="logical-replication-config"/>.
@@ -4833,2 +4830,2 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
-         Specifies the maximum number of replication slots
-         (see <xref linkend="streaming-replication-slots"/>) that the server
+         Specifies the maximum number of
+         <xref linkend="streaming-replication-slots"/> that the server
@@ -5046,2 +5043,3 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
-      server, and optionally WAL archiving can be enabled as
-      well (see <xref linkend="runtime-config-wal-archiving"/>).
+      server, and optionally WAL <xref linkend="runtime-config-wal-archiving"/>
+      can be enabled as
+      well.
@@ -5064 +5061,0 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
-        <firstterm>synchronous replication</firstterm>, as described in
@@ -5249,4 +5246,4 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-          to connect with a sending server. This string is in the format
-          described in <xref linkend="libpq-connstring"/>. If any option is
-          unspecified in this string, then the corresponding environment
-          variable (see <xref linkend="libpq-envars"/>) is checked. If the
+          to connect with a sending server. This string uses the format of
+          <xref linkend="libpq-connstring"/>. If any option is
+          unspecified in this string, then the corresponding
+          <xref linkend="libpq-envars"/> are checked. If the
@@ -5270,2 +5267,2 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-          For replication slot synchronization (see
-          <xref linkend="logicaldecoding-replication-slots-synchronization"/>),
+          For
+          <xref linkend="logicaldecoding-replication-slots-synchronization"/>,
@@ -5298 +5295,2 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-          (see <xref linkend="streaming-replication-slots"/>).
+          See <xref linkend="streaming-replication-slots"/> for more
+          information.
@@ -5339,2 +5337,2 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-        conflict with about-to-be-applied WAL entries, as described in
-        <xref linkend="hot-standby-conflict"/>.
+        conflict with about-to-be-applied WAL entries; see
+        <xref linkend="hot-standby-conflict"/> for details.
@@ -5371,2 +5369,2 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-        conflict with about-to-be-applied WAL entries, as described in
-        <xref linkend="hot-standby-conflict"/>.
+        conflict with about-to-be-applied WAL entries; see
+        <xref linkend="hot-standby-conflict"/> for details.
@@ -5760,2 +5758,2 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-       plans chosen by the optimizer include adjusting the planner cost
-       constants (see <xref linkend="runtime-config-query-constants"/>),
+       plans chosen by the optimizer include adjusting
+       <xref linkend="runtime-config-query-constants"/>,
@@ -5932,2 +5930,2 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-        Enables or disables the query planner's use of index-only-scan plan
-        types (see <xref linkend="indexes-index-only-scans"/>).
+        Enables or disables the query planner's use of
+        <xref linkend="indexes-index-only-scans"/>.
@@ -6475,2 +6473 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-        Sets the query cost above which JIT compilation is activated, if
-        enabled (see <xref linkend="jit"/>).
+        Sets the query cost above which <xref linkend="jit"/> is activated.
@@ -6530 +6527 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-      The genetic query optimizer (GEQO) is an algorithm that does query
+      The <xref linkend="geqo"/> (GEQO) is an algorithm that does query
@@ -6535 +6531,0 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-      For more information see <xref linkend="geqo"/>.
@@ -6697,3 +6693,2 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
-        planner's estimates. The default is 100. For more information
-        on the use of statistics by the <productname>PostgreSQL</productname>
-        query planner, refer to <xref linkend="planner-stats"/>.
+        planner's estimates. The default is 100. For more information,
+        refer to <xref linkend="planner-stats"/>.
@@ -6759,2 +6754 @@ SELECT * FROM parent WHERE key = 2400;
-        more information on using constraint exclusion to implement
-        partitioning.
+        more information.
@@ -6803,2 +6797,3 @@ SELECT * FROM parent WHERE key = 2400;
-        may trigger use of the GEQO planner, resulting in non-optimal
-        plans.  See <xref linkend="runtime-config-query-geqo"/>.
+        may trigger use of <xref linkend="runtime-config-query-geqo"/>,
+        resulting in non-optimal
+        plans.
@@ -6849,2 +6844,2 @@ SELECT * FROM parent WHERE key = 2400;
-        order they desire explicitly.
-        For more information see <xref linkend="explicit-joins"/>.
+        order they desire explicitly; see <xref linkend="explicit-joins"/> for
+        more information.
@@ -6855,2 +6850,3 @@ SELECT * FROM parent WHERE key = 2400;
-        may trigger use of the GEQO planner, resulting in non-optimal
-        plans.  See <xref linkend="runtime-config-query-geqo"/>.
+        may trigger use of <xref linkend="runtime-config-query-geqo"/>,
+        resulting in non-optimal
+        plans.
@@ -7019 +7015,2 @@ local0.*    /var/log/postgresql
-         system so that the Windows Event Viewer can display event
+         system, as described in <xref linkend="event-log-registration"/>,
+         so that the Windows Event Viewer can display event
@@ -7021 +7017,0 @@ local0.*    /var/log/postgresql
-         See <xref linkend="event-log-registration"/> for details.
@@ -8092,2 +8088,3 @@ local0.*    /var/log/postgresql
-        <literal>VERBOSE</literal> output includes the <symbol>SQLSTATE</symbol> error
-        code (see also <xref linkend="errcodes-appendix"/>) and the source code file name, function name,
+        <literal>VERBOSE</literal> output includes the
+        <xref linkend="errcodes-appendix"/> and the source code file name,
+        function name,
@@ -8248 +8245 @@ local0.*    /var/log/postgresql
-             <entry>Virtual transaction ID (procNumber/localXID);  see
+             <entry>Virtual transaction ID (procNumber/localXID)
@@ -8254 +8251 @@ local0.*    /var/log/postgresql
-             <entry>Transaction ID (0 if none is assigned);  see
+             <entry>Transaction ID (0 if none is assigned)
@@ -8563 +8560,2 @@ log_line_prefix = '%m [%p] %q%u@%d/%a '
-        Sets the time zone used for timestamps written in the server log.
+        Sets the <xref linkend="datatype-timezones"/> used for timestamps
+        written in the server log.
@@ -8569 +8566,0 @@ log_line_prefix = '%m [%p] %q%u@%d/%a '
-        See <xref linkend="datatype-timezones"/> for more information.
@@ -9033,2 +9030,2 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-        Enables timing of cost-based vacuum delay (see
-        <xref linkend="runtime-config-resource-vacuum-cost"/>).  This parameter
+        Enables timing of <xref linkend="runtime-config-resource-vacuum-cost"/>.
+         This parameter
@@ -9270,2 +9267 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-     These parameters control vacuuming behavior. For more information on the
-     purpose and responsibilities of vacuum, see <xref linkend="routine-vacuuming"/>.
+     These parameters control <xref linkend="routine-vacuuming"/> behavior.
@@ -9278,2 +9274 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-      These settings control the behavior of the <firstterm>autovacuum</firstterm>
-      feature.  Refer to <xref linkend="autovacuum"/> for more information.
+      These settings control the behavior of <xref linkend="autovacuum"/>.
@@ -9574 +9569,2 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-         For more information see <xref linkend="vacuum-for-multixact-wraparound"/>.
+         see <xref linkend="vacuum-for-multixact-wraparound"/> for more
+         information.
@@ -9930 +9926 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-      information on transaction ID wraparound and tuning these parameters.
+      information.
@@ -10247 +10243 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-        For more information on schema handling, see
+        For more information, see
@@ -10257 +10253 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-        (see <xref linkend="functions-info"/>).
+        in <xref linkend="functions-info"/>.
@@ -10354 +10350 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-        For more information on tablespaces,
+        For more information,
@@ -10818 +10814 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-        Sets the output format for values of type <type>bytea</type>.
+        Sets the output format for values of <xref linkend="datatype-binary"/>.
@@ -10821,2 +10817 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-        format).  See <xref linkend="datatype-binary"/> for more
-        information.  The <type>bytea</type> type always
+        format).  The <type>bytea</type> type always
@@ -10842,2 +10837,2 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-        <literal>base64</literal>.  For further information about
-        XML-related functions, see <xref linkend="functions-xml"/>.
+        <literal>base64</literal>.  For further information,
+        see <xref linkend="functions-xml"/>.
@@ -10872,2 +10867,2 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
-        XML and character string values.  See <xref
-        linkend="datatype-xml"/> for a description of this.  Valid
+        <xref linkend="datatype-xml"/> and character string values.
+        Valid
@@ -10899 +10894 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        when <literal>fastupdate</literal> is enabled. If the list grows
+        when <xref linkend="gin-fast-update"/> is enabled. If the list grows
@@ -10906 +10901 @@ SET XML OPTION { DOCUMENT | CONTENT };
-         See <xref linkend="gin-fast-update"/> and <xref linkend="gin-tips"/>
+         See <xref linkend="gin-tips"/>
@@ -10997 +10992,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        Sets the display format for date and time values, as well as the
+        Sets the display format for <xref linkend="datatype-datetime"/> values,
+        as well as the
@@ -11007,3 +11003,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        <literal>NonEuropean</literal> are synonyms for <literal>MDY</literal>. See
-        <xref linkend="datatype-datetime"/> for more information. The
-        built-in default is <literal>ISO, MDY</literal>, but
+        <literal>NonEuropean</literal> are synonyms for <literal>MDY</literal>.
+        The built-in default is <literal>ISO, MDY</literal>, but
@@ -11042,2 +11037 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        interpretation of ambiguous interval input.  See
-        <xref linkend="datatype-interval-input"/> for more information.
+        interpretation of ambiguous <xref linkend="datatype-interval-input"/>.
@@ -11057 +11051,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        Sets the time zone for displaying and interpreting time stamps.
+        Sets the <xref linkend="datatype-timezones"/> for displaying and
+        interpreting time stamps.
@@ -11061 +11055,0 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        See <xref linkend="datatype-timezones"/> for more information.
@@ -11107,2 +11101,3 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        If the value is 1 (the default) or above, float values are output in
-        shortest-precise format; see <xref linkend="datatype-float"/>. The
+        If the value is 1 (the default) or above,
+        <xref linkend="datatype-float"/> values are output in
+        shortest-precise format. The
@@ -11147,3 +11142,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        The default is to use the database encoding.
-        The character sets supported by the <productname>PostgreSQL</productname>
-        server are described in <xref linkend="multibyte-charset-supported"/>.
+        The default is to use the database encoding; see
+        <xref linkend="multibyte-charset-supported"/> for available options.
@@ -11192 +11186,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        Sets the locale to use for formatting monetary amounts, for
+        Sets the <xref linkend="locale"/> to use for formatting monetary
+        amounts, for
@@ -11194,2 +11189,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        functions.  Acceptable values are system-dependent; see <xref
-        linkend="locale"/> for more information.  If this variable is
+        functions.  Acceptable values are system-dependent.
+        If this variable is
@@ -11211 +11206,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        Sets the locale to use for formatting numbers, for example
+        Sets the <xref linkend="locale"/> to use for formatting numbers, for
+        example
@@ -11213,2 +11209,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        functions. Acceptable values are system-dependent; see <xref
-        linkend="locale"/> for more information.  If this variable is
+        functions. Acceptable values are system-dependent.
+        If this variable is
@@ -11230 +11226,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        Sets the locale to use for formatting dates and times, for example
+        Sets the <xref linkend="locale"/> to use for formatting dates and times,
+        for example
@@ -11232,2 +11229,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        functions. Acceptable values are system-dependent; see <xref
-        linkend="locale"/> for more information.  If this variable is
+        functions. Acceptable values are system-dependent.
+        If this variable is
@@ -11275 +11272,2 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        Selects the text search configuration that is used by those variants
+        Selects the <xref linkend="textsearch"/> configuration that is used by
+        those variants
@@ -11278 +11275,0 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        See <xref linkend="textsearch"/> for further information.
@@ -11484,2 +11481 @@ SET XML OPTION { DOCUMENT | CONTENT };
-        This variable is the name of the JIT provider library to be used
-        (see <xref linkend="jit-pluggable"/>).
+        This variable is the name of <xref linkend="jit-pluggable"/> to be used.
@@ -11570 +11566,2 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
-        A path to search for extensions, specifically extension control files
+        A path to search for extensions, specifically
+        <xref linkend="extend-extensions-files"/>
@@ -11574 +11570,0 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
-        See <xref linkend="extend-extensions-files"/> for details.
@@ -11930 +11926 @@ dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
-        Escape string syntax (<xref linkend="sql-syntax-strings-escape"/>)
+        <xref linkend="sql-syntax-strings-escape"/>
@@ -12368 +12364,2 @@ dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
-        Reports whether the server is currently in hot standby mode.  When
+        Reports whether the server is currently in
+        <xref linkend="hot-standby"/>.  When
@@ -12371,2 +12368 @@ dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
-        promoted to be primary.  See <xref linkend="hot-standby"/> for more
-        information.
+        promoted to be primary.
@@ -12534,2 +12530 @@ dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
-        details about using huge pages on <productname>Linux</productname>, see
-        <xref linkend="linux-huge-pages"/>.
+        details, see <xref linkend="linux-huge-pages"/>.
@@ -12579,2 +12574,3 @@ dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
-        Reports the size of write ahead log segments.  The default value is
-        16MB. See <xref linkend="wal-configuration"/> for more information.
+        Reports the size of <xref linkend="wal-configuration"/> segments.  The
+        default value is
+        16MB.
@@ -13299,2 +13295,2 @@ LOG:  CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
-        Determines whether expressions are JIT compiled, when JIT compilation
-        is activated (see <xref linkend="jit-decision"/>).  The default is
+        Determines whether expressions are JIT compiled; see
+        <xref linkend="jit-decision"/>.  The default is
@@ -13334,2 +13330,2 @@ LOG:  CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
-        Determines whether tuple deforming is JIT compiled, when JIT
-        compilation is activated (see <xref linkend="jit-decision"/>).
+        Determines whether tuple deforming is JIT compiled; see
+        <xref linkend="jit-decision"/>.
diff --git a/doc/src/sgml/contrib.sgml b/doc/src/sgml/contrib.sgml
index b9b03654aad..eda7a9ffbc0 100644
--- a/doc/src/sgml/contrib.sgml
+++ b/doc/src/sgml/contrib.sgml
@@ -199,3 +199 @@ pages.
-  more information about the <literal>contrib</literal> section in general and
-  server extensions and plug-ins found in <literal>contrib</literal>
-  specifically.
+  more information about server extensions and plug-ins found there.
diff --git a/doc/src/sgml/custom-scan.sgml b/doc/src/sgml/custom-scan.sgml
index a200d502cdd..0a5384c2dc7 100644
--- a/doc/src/sgml/custom-scan.sgml
+++ b/doc/src/sgml/custom-scan.sgml
@@ -148 +148 @@ Plan *(*PlanCustomPath) (PlannerInfo *root,
-    initialize.  See <xref linkend="custom-scan-plan"/> for more details.
+    initialize, as described in <xref linkend="custom-scan-plan"/>.
diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml
index d8d91678e86..061a2600822 100644
--- a/doc/src/sgml/datatype.sgml
+++ b/doc/src/sgml/datatype.sgml
@@ -440,5 +440,3 @@
-    The syntax of constants for the numeric types is described in
-    <xref linkend="sql-syntax-constants"/>.  The numeric types have a
-    full set of corresponding arithmetic operators and
-    functions. Refer to <xref linkend="functions"/> for more
-    information.  The following sections describe the types in detail.
+    The numeric types use <xref linkend="sql-syntax-constants"/> as literals
+    and support a full set of arithmetic <xref linkend="functions"/>.
+    The following sections describe the types in detail.
@@ -958,2 +956,2 @@ FROM generate_series(-3.5, 3.5, 1) AS x;
-      autoincrementing column.  Another way is to use the SQL-standard
-      identity column feature, described at <xref linkend="ddl-identity-columns"/>.
+      autoincrementing column.  Another way is to use
+      <xref linkend="ddl-identity-columns"/>.
@@ -1000 +998,2 @@ ALTER SEQUENCE <replaceable class="parameter">tablename</replaceable>_<replaceab
-        <type>bigserial</type> are implemented using sequences, there may
+        <type>bigserial</type> are implemented using
+        <xref linkend="functions-sequence"/>, there may
@@ -1006,2 +1005 @@ ALTER SEQUENCE <replaceable class="parameter">tablename</replaceable>_<replaceab
-        See <literal>nextval()</literal> in <xref linkend="functions-sequence"/>
-        for details.
+        See <literal>nextval()</literal> for details.
@@ -1276 +1274,2 @@ SELECT '52093.89'::money::numeric::float8;
-    determined by the database character set, which is selected when
+    determined by the database's <xref linkend="multibyte"/>, which is selected
+    when
@@ -1279 +1277,0 @@ SELECT '52093.89'::money::numeric::float8;
-    For more information refer to <xref linkend="multibyte"/>.
@@ -1319 +1317 @@ SELECT '52093.89'::money::numeric::float8;
-    for information about available operators and functions.
+    for operators and functions.
@@ -1746,3 +1744,2 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
-    linkend="datatype-datetime-table"/>.  The operations available
-    on these data types are described in
-    <xref linkend="functions-datetime"/>.
+    linkend="datatype-datetime-table"/>.  <xref linkend="functions-datetime"/>
+    are available for these data types.
@@ -1895 +1892 @@ MINUTE TO SECOND
-     for the exact parsing rules of date/time input and for the
+     for exact parsing rules and
@@ -2176,2 +2173 @@ MINUTE TO SECOND
-     Refer to <xref linkend="datatype-timezones"/> for more information on how
-     to specify time zones.
+     Refer to <xref linkend="datatype-timezones"/> for more information.
@@ -2275,2 +2271,2 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-      <varname>timezone</varname> or use the <literal>AT TIME ZONE</literal> construct
-      (see <xref linkend="functions-datetime-zoneconvert"/>).
+      <varname>timezone</varname> or use
+      <xref linkend="functions-datetime-zoneconvert"/>.
@@ -2371 +2367 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-      The following <acronym>SQL</acronym>-compatible functions can also
+      The following <xref linkend="functions-datetime-current"/> can also
@@ -2376,2 +2372 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-      <literal>LOCALTIMESTAMP</literal>.  (See <xref
-      linkend="functions-datetime-current"/>.)  Note that these are
+      <literal>LOCALTIMESTAMP</literal>.  Note that these are
@@ -2486 +2481 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-     for how this setting also affects interpretation of input values.)
+     for how this setting affects input interpretation.)
@@ -2555,2 +2550,3 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-     The formatting function <function>to_char</function>
-     (see <xref linkend="functions-formatting"/>) is also available as
+     The <function>to_char</function> function from
+     <xref linkend="functions-formatting"/>
+     is also available as
@@ -2637,3 +2633,2 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-        The recognized time zone names are listed in the
-        <literal>pg_timezone_names</literal> view (see <xref
-        linkend="view-pg-timezone-names"/>).
+        The recognized time zone names are listed in
+        <xref linkend="view-pg-timezone-names"/>.
@@ -2651,2 +2646,2 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-        are listed in the <literal>pg_timezone_abbrevs</literal> view (see <xref
-        linkend="view-pg-timezone-abbrevs"/>).  You cannot set the
+        are listed in <xref linkend="view-pg-timezone-abbrevs"/>.  You cannot
+        set the
@@ -2663,2 +2658 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-        <productname>PostgreSQL</productname> will accept POSIX-style time zone
-        specifications, as described in
+        <productname>PostgreSQL</productname> will also accept
@@ -2711 +2705 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-     they are obtained from configuration files stored under
+     they are obtained from <xref linkend="datetime-config-files"/> stored under
@@ -2713,2 +2707 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-     of the installation directory
-     (see <xref linkend="datetime-config-files"/>).
+     of the installation directory.
@@ -2720 +2713 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
-     other standard ways described in <xref linkend="runtime-config"/>.
+     other ways described in <xref linkend="runtime-config"/>.
@@ -3173,3 +3166,2 @@ SELECT * FROM test1 WHERE a;
-    representations by following the generic string-literal constant syntax
-    described in <xref linkend="sql-syntax-constants-generic"/>, for
-    example <literal>'yes'::boolean</literal>.
+    representations by following <xref linkend="sql-syntax-constants-generic"/>,
+    for example <literal>'yes'::boolean</literal>.
@@ -3436 +3428,2 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
-    A rich set of functions and operators is available to perform various geometric
+    A rich set of <xref linkend="functions-geometry"/> is available to perform
+    various geometric
@@ -3438 +3431 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
-    intersections.  They are explained in <xref linkend="functions-geometry"/>.
+    intersections.
@@ -3702,2 +3695,2 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
-    these types offer input error checking and specialized
-    operators and functions (see <xref linkend="functions-net"/>).
+    these types offer input error checking and <xref
+    linkend="functions-net"/>.
@@ -4106,4 +4099,3 @@ SELECT macaddr8_set7bit('08:00:2b:01:02:03');
-    linkend="sql-syntax-bit-strings"/> for information about the syntax
-    of bit string constants.  Bit-logical operators and string
-    manipulation functions are available; see <xref
-    linkend="functions-bitstring"/>.
+    linkend="sql-syntax-bit-strings"/> for the syntax
+    of bit-string constants.  <xref
+    linkend="functions-bitstring"/> are available.
@@ -4137 +4129 @@ SELECT * FROM test;
-    in <xref linkend="datatype-character"/> for character strings).
+    in <xref linkend="datatype-character"/>).
@@ -4156 +4148,2 @@ SELECT * FROM test;
-    are designed to support full text search, which is the activity of
+    are designed to support <xref linkend="textsearch"/>, which is the activity
+    of
@@ -4162,3 +4155,2 @@ SELECT * FROM test;
-    <xref linkend="textsearch"/> provides a detailed explanation of this
-    facility, and <xref linkend="functions-textsearch"/> summarizes the
-    related functions and operators.
+    See <xref linkend="functions-textsearch"/> for related functions and
+    operators.
@@ -4263 +4255 @@ SELECT 'The Fat Rats'::tsvector;
-     for searching:
+     for <xref linkend="textsearch"/>:
@@ -4272 +4263,0 @@ SELECT to_tsvector('english', 'The Fat Rats');
-     Again, see <xref linkend="textsearch"/> for more detail.
@@ -4469,3 +4460,3 @@ decode('HqPWTLxATMOEu2sR7jHlwg==', 'base64')::uuid
-    checks the input values for well-formedness, and there are support
-    functions to perform type-safe operations on it; see <xref
-    linkend="functions-xml"/>.  Use of this data type requires the
+    checks the input values for well-formedness, and there are <xref
+    linkend="functions-xml"/> to perform type-safe operations on it.  Use of
+    this data type requires the
@@ -4491,2 +4482,3 @@ decode('HqPWTLxATMOEu2sR7jHlwg==', 'base64')::uuid
-    Limits and compatibility notes for the <type>xml</type> data type
-    can be found in <xref linkend="xml-limits-conformance"/>.
+    See <xref linkend="xml-limits-conformance"/> for limits and compatibility
+    notes
+    on the <type>xml</type> data type.
@@ -4580,2 +4572,2 @@ SET xmloption TO { DOCUMENT | CONTENT };
-    server and vice versa to the character encoding of the respective
-    end; see <xref linkend="multibyte"/>.  This includes string
+    server and vice versa to the <xref linkend="multibyte"/> of the respective
+    end.  This includes string
@@ -5114,2 +5106 @@ WHERE ...
-    (The system columns are further explained in <xref
-    linkend="ddl-system-columns"/>.)
+    (See <xref linkend="ddl-system-columns"/>.)
@@ -5305 +5296 @@ WHERE ...
-        <entry>Indicates that a function accepts any enum data type
+        <entry>Indicates that a function accepts any enum type
@@ -5312 +5303 @@ WHERE ...
-        <entry>Indicates that a function accepts any range data type
+        <entry>Indicates that a function accepts any range type
@@ -5347 +5338 @@ WHERE ...
-        <entry>Indicates that a function accepts any range data type,
+        <entry>Indicates that a function accepts any range type,
@@ -5445,2 +5436 @@ WHERE ...
-    using the polymorphic pseudo-types, which are shown above and discussed
-    in detail in <xref linkend="extend-types-polymorphic"/>.
+    using <xref linkend="extend-types-polymorphic"/>, which are shown above.
diff --git a/doc/src/sgml/datetime.sgml b/doc/src/sgml/datetime.sgml
index 5905f5fa550..9d6991fc1a9 100644
--- a/doc/src/sgml/datetime.sgml
+++ b/doc/src/sgml/datetime.sgml
@@ -83,2 +83,2 @@
-        These abbreviations are determined by the configuration settings
-        described in <xref linkend="datetime-config-files"/>.
+        These abbreviations are determined by
+        <xref linkend="datetime-config-files"/>.
@@ -658,2 +658,2 @@
-   abbreviations recognized in timestamp input are determined as explained
-   in <xref linkend="datetime-config-files"/>.
+   abbreviations recognized in timestamp input are listed in
+   <xref linkend="datetime-config-files"/>.
diff --git a/doc/src/sgml/dblink.sgml b/doc/src/sgml/dblink.sgml
index fc496b74288..e999aa2e57e 100644
--- a/doc/src/sgml/dblink.sgml
+++ b/doc/src/sgml/dblink.sgml
@@ -119 +119,2 @@ dblink_connect(text connname, text connstr) returns text
-      <para><application>libpq</application>-style connection info string, for example
+      <para><application>libpq</application>-style <xref linkend="libpq-connstring"/>,
+for example
@@ -122 +122,0 @@ dblink_connect(text connname, text connstr) returns text
-       For details see <xref linkend="libpq-connstring"/>.
diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml
index 747f929aee3..05e06b1f908 100644
--- a/doc/src/sgml/ddl.sgml
+++ b/doc/src/sgml/ddl.sgml
@@ -64 +64,2 @@
-   built-in data types that fit many applications.  Users can also
+   built-in <xref linkend="datatype"/> that fit many applications.  Users can
+   also
@@ -66,2 +67 @@
-   names and semantics, so we defer a detailed explanation to <xref
-   linkend="datatype"/>.  Some of the frequently used data types are
+   names and semantics.  Some of the frequently used data types are
@@ -157 +157 @@ DROP TABLE products;
-   If you need to modify a table that already exists, see <xref
+   If you need to modify a table, see <xref
@@ -184 +184 @@ DROP TABLE products;
-   (Details about data manipulation commands are in <xref linkend="dml"/>.)
+   (See <xref linkend="dml"/>.)
@@ -222,2 +222,2 @@ CREATE TABLE products (
-   from a <firstterm>sequence object</firstterm> (see <xref
-   linkend="functions-sequence"/>). This arrangement is sufficiently common
+   from <xref
+   linkend="functions-sequence"/>. This arrangement is sufficiently common
@@ -231 +231 @@ CREATE TABLE products (
-   The <literal>SERIAL</literal> shorthand is discussed further in <xref
+   The <literal>SERIAL</literal> shorthand is described in <xref
@@ -1405 +1405 @@ CREATE TABLE posts (
-    More information about updating and deleting data is in <xref
+    More information is in <xref
@@ -1477,3 +1477,3 @@ CREATE TABLE circles (
-      particularly handy for queries that select from partitioned
-      tables (see <xref linkend="ddl-partitioning"/>) or inheritance
-      hierarchies (see <xref linkend="ddl-inherit"/>), since without it,
+      particularly handy for queries that select from
+      <xref linkend="ddl-partitioning"/> or
+      <xref linkend="ddl-inherit"/> hierarchies, since without it,
@@ -1580,2 +1580,2 @@ CREATE TABLE circles (
-    around.  This is not a fatal problem given appropriate maintenance
-    procedures; see <xref linkend="maintenance"/> for details.  It is
+    around.  This is not a fatal problem given appropriate
+    <xref linkend="maintenance"/>; see that section for details.  It is
@@ -1677 +1677 @@ CREATE TABLE products (
-    linkend="rangetypes"/> for more information about range types.
+    linkend="rangetypes"/> for more information.
@@ -1751,2 +1751,3 @@ CREATE TABLE products (
-     Temporal primary keys and unique constraints are backed by GiST indexes
-     (see <xref linkend="gist"/>) rather than B-Tree indexes.  In practice,
+     Temporal primary keys and unique constraints are backed by
+     <xref linkend="gist"/>
+     rather than B-Tree indexes.  In practice,
@@ -1760 +1761 @@ CREATE TABLE products (
-     exclusion constraints (see <xref linkend="ddl-constraints-exclusion"/>),
+     <xref linkend="ddl-constraints-exclusion"/>,
@@ -2020,2 +2021 @@ ALTER TABLE products DROP COLUMN description CASCADE;
-    See <xref linkend="ddl-depend"/> for a description of the general
-    mechanism behind this.
+    See <xref linkend="ddl-depend"/> for the general mechanism behind this.
@@ -2250 +2250 @@ ALTER TABLE products RENAME TO items;
-   members of the owning role; see <xref linkend="role-membership"/>.)
+   <xref linkend="role-membership"/>.)
@@ -2281,3 +2281,2 @@ GRANT UPDATE ON accounts TO joe;
-   <quote>group</quote> roles can be set up to help manage privileges when
-   there are many users of a database &mdash; for details see
-   <xref linkend="user-manag"/>.
+   <xref linkend="user-manag"/> can be set up to help manage privileges when
+   there are many users of a database.
@@ -3723,2 +3722,2 @@ REVOKE CREATE ON SCHEMA public FROM PUBLIC;
-    key word, hence the different capitalization; recall the
-    guidelines from <xref linkend="sql-syntax-identifiers"/>.)
+    key word, hence the different capitalization; recall
+    <xref linkend="sql-syntax-identifiers"/>.)
@@ -4110,2 +4109,2 @@ VALUES ('Albany', NULL, NULL, 'NY');
-   when the inheritance relationship is being used for table
-   partitioning (see <xref linkend="ddl-partitioning"/>).
+   when the inheritance relationship is being used for
+   <xref linkend="ddl-partitioning"/>.
@@ -4152,2 +4151,2 @@ VALUES ('Albany', NULL, NULL, 'NY');
-   without an additional grant.  In a similar way, the parent table's row
-   security policies (see <xref linkend="ddl-rowsecurity"/>) are applied to
+   without an additional grant.  In a similar way, the parent table's
+   <xref linkend="ddl-rowsecurity"/> are applied to
@@ -4161 +4160 @@ VALUES ('Albany', NULL, NULL, 'NY');
-   Foreign tables (see <xref linkend="ddl-foreign-data"/>) can also
+   <xref linkend="ddl-foreign-data"/> can also
@@ -4863 +4862 @@ ALTER TABLE measurement SPLIT PARTITION measurement_y2006q1 INTO
-     inheritance apply as described in <xref linkend="ddl-inherit"/>, with
+     <xref linkend="ddl-inherit"/> apply, with
@@ -5665,2 +5664,2 @@ EXPLAIN SELECT count(*) FROM measurement WHERE logdate &gt;= DATE '2008-01-01';
-    There are some foreign data wrappers available as <filename>contrib</filename>
-    modules; see <xref linkend="contrib"/>.  Other kinds of foreign data
+    There are some foreign data wrappers available as <xref linkend="contrib"/>.
+    Other kinds of foreign data
@@ -6080,2 +6079,2 @@ CREATE FUNCTION get_color_note (rainbow) RETURNS text AS
-   (See <xref linkend="xfunc-sql"/> for an explanation of SQL-language
-   functions.)  <productname>PostgreSQL</productname> will be aware that
+   (See <xref linkend="xfunc-sql"/>.)  <productname>PostgreSQL</productname>
+   will be aware that
diff --git a/doc/src/sgml/dict-int.sgml b/doc/src/sgml/dict-int.sgml
index b4ce5484823..20c74ab7641 100644
--- a/doc/src/sgml/dict-int.sgml
+++ b/doc/src/sgml/dict-int.sgml
@@ -89,2 +89,2 @@ mydb# SELECT ts_lexize('intdict', '12345678');
-   but real-world usage will involve including it in a text search
-   configuration as described in <xref linkend="textsearch"/>.
+   but real-world usage will involve including it in a
+   <xref linkend="textsearch"/>.
diff --git a/doc/src/sgml/dict-xsyn.sgml b/doc/src/sgml/dict-xsyn.sgml
index a94c6430ed4..de47dc753bf 100644
--- a/doc/src/sgml/dict-xsyn.sgml
+++ b/doc/src/sgml/dict-xsyn.sgml
@@ -137,2 +137 @@ mydb=# SELECT ts_lexize('xsyn', 'syn1');
-   Real-world usage will involve including it in a text search
-   configuration as described in <xref linkend="textsearch"/>.
+   Real-world usage will involve including it in a <xref linkend="textsearch"/>.
diff --git a/doc/src/sgml/dml.sgml b/doc/src/sgml/dml.sgml
index 429aae9bd7b..965909659a9 100644
--- a/doc/src/sgml/dml.sgml
+++ b/doc/src/sgml/dml.sgml
@@ -109,2 +109,2 @@ INSERT INTO products (product_no, name, price)
-   This provides the full power of the SQL query mechanism (<xref
-   linkend="queries"/>) for computing the rows to be inserted.
+   This provides the full power of <xref
+   linkend="queries"/> for computing the rows to be inserted.
@@ -119,2 +119 @@ INSERT INTO products (product_no, name, price)
-    to <xref linkend="populate"/> for more information on improving
-    bulk loading performance.
+    to <xref linkend="populate"/> for more information.
@@ -205,2 +204,3 @@ UPDATE products SET price = price * 1.10;
-   not have to be an equality test.  Many other operators are
-   available (see <xref linkend="functions"/>).  But the expression
+   not have to be an equality test.  Many other <xref
+   linkend="functions"/> are
+   available.  But the expression
@@ -476,2 +476,2 @@ DELETE FROM products
-   a <command>SELECT</command> command's output list
-   (see <xref linkend="queries-select-lists"/>).  It can contain column
+   a <command>SELECT</command> command's <xref linkend="queries-select-lists"/>.
+    It can contain column
@@ -569 +569 @@ UPDATE products SET price = price * 1.10
-   If there are triggers (<xref linkend="triggers"/>) on the target table,
+   If there are <xref linkend="triggers"/> on the target table,
diff --git a/doc/src/sgml/docguide.sgml b/doc/src/sgml/docguide.sgml
index 7b61b4841aa..05d268b64f3 100644
--- a/doc/src/sgml/docguide.sgml
+++ b/doc/src/sgml/docguide.sgml
@@ -268,2 +268 @@ checking for dbtoepub... dbtoepub
-   Meson, instead run <command>meson setup</command> as described in
-   <xref linkend="install-meson"/>, and then see
+   Meson, instead follow <xref linkend="install-meson"/>, and then see
diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml
index 4651382b635..8c793676d94 100644
--- a/doc/src/sgml/ecpg.sgml
+++ b/doc/src/sgml/ecpg.sgml
@@ -76,3 +76,2 @@ EXEC SQL ...;
-   C rules, for parsing quoted strings and identifiers.
-   (See <xref linkend="sql-syntax-strings"/> and
-   <xref linkend="sql-syntax-identifiers"/> respectively.)
+   C rules, for parsing <xref linkend="sql-syntax-strings"/> and
+   <xref linkend="sql-syntax-identifiers"/> respectively.
@@ -203,3 +202,3 @@ EXEC SQL CONNECT TO <replaceable>target</replaceable> <optional>AS <replaceable>
-   The allowed key words are the same ones recognized
-   by <application>libpq</application> (see
-   <xref linkend="libpq-paramkeywords"/>).  Spaces are ignored before
+   The allowed <xref linkend="libpq-paramkeywords"/> are the same ones
+   recognized
+   by <application>libpq</application>.  Spaces are ignored before
@@ -489,3 +488,3 @@ EXEC SQL COMMIT;
-   see <xref linkend="ecpg-cursors"/> below.  (As a special case, an
-   application can fetch multiple rows at once into an array host
-   variable; see <xref linkend="ecpg-variables-arrays"/>.)
+   (see <xref linkend="ecpg-cursors"/> for details).  (As a special case, an
+   application can fetch multiple rows at once into an
+   <xref linkend="ecpg-variables-arrays"/>.)
@@ -512,3 +511,3 @@ EXEC SQL SHOW search_path INTO :var;
-   <firstterm>host variables</firstterm>, that is, they refer to
-   variables in the C program.  They are explained in <xref
-   linkend="ecpg-variables"/>.
+   <xref
+   linkend="ecpg-variables"/>, that is, they refer to
+   variables in the C program.
@@ -736,2 +735 @@ EXEC SQL DEALLOCATE PREPARE <replaceable>name</replaceable>;
-   applications is the use of SQL descriptors, described
-   in <xref linkend="ecpg-descriptors"/>.
+   applications is through <xref linkend="ecpg-descriptors"/>.
@@ -902 +900 @@ do
-    accessed through special library functions; see
+    accessed through special library functions, as described in
@@ -1092,2 +1090,2 @@ struct varchar_var { int len; char arr[180]; } var;
-     the pgtypes library.  The pgtypes library, described in detail
-     in <xref linkend="ecpg-pgtypes"/> contains basic functions to deal
+     the pgtypes library.  <xref linkend="ecpg-pgtypes"/> contains basic
+     functions to deal
@@ -1101,2 +1099 @@ struct varchar_var { int len; char arr[180]; } var;
-     more details about pgtypes library functions,
-     see <xref linkend="ecpg-pgtypes"/>.
+     more details, see <xref linkend="ecpg-pgtypes"/>.
@@ -1152,2 +1149,2 @@ ts = 2010-06-27 18:03:56.949343
-      <function>PGTYPESdate_to_asc()</function> function. For more details about the
-      pgtypes library functions, see <xref linkend="ecpg-pgtypes"/>.
+      <function>PGTYPESdate_to_asc()</function> function. For more details,
+      see <xref linkend="ecpg-pgtypes"/>.
@@ -1207,2 +1204 @@ EXEC SQL END DECLARE SECTION;
-      variable using the pgtypes library functions.  For more details
-      about the pgtypes library functions,
+      variable using the pgtypes library functions.  For more details,
@@ -1314,3 +1310,2 @@ struct bytea_var { int len; char arr[180]; } var;
-      is a way to store some text string in <type>char[]</type>
-      or <type>VARCHAR[]</type>, as
-      explained in <xref linkend="ecpg-char"/>.  The second use case is to
+      is a way to store some text string with <xref linkend="ecpg-char"/>.  The
+      second use case is to
@@ -2037,2 +2032 @@ EXEC SQL EXECUTE mystmt INTO :v1, :v2, :v3 USING 37;
-    (See <xref linkend="ecpg-cursors"/> for more details about the
-    cursor.)
+    (See <xref linkend="ecpg-cursors"/>.)
@@ -2115,3 +2109,3 @@ PGTYPESchar_free(out);
-    The numeric type offers to do calculations with arbitrary precision. See
-    <xref linkend="datatype-numeric"/> for the equivalent type in the
-    <productname>PostgreSQL</productname> server. Because of the arbitrary precision this
+    <xref linkend="datatype-numeric"/> offers calculations with arbitrary
+    precision.
+    Because of the arbitrary precision this
@@ -2441 +2435 @@ int PGTYPESnumeric_from_decimal(decimal *src, numeric *dst);
-    date. See <xref linkend="datatype-datetime"/> for the equivalent type in the
+    date; see <xref linkend="datatype-datetime"/> for equivalent types in the
@@ -2919,2 +2913,3 @@ int PGTYPESdate_defmt_asc(date *d, char *fmt, char *str);
-    type timestamp. See <xref linkend="datatype-datetime"/> for the equivalent
-    type in the <productname>PostgreSQL</productname> server.
+    type timestamp; see <xref linkend="datatype-datetime"/> for equivalent types
+    in the
+    <productname>PostgreSQL</productname> server.
@@ -3449,2 +3444,3 @@ int PGTYPEStimestamp_sub_interval(timestamp *tin, interval *span, timestamp *tou
-    type interval. See <xref linkend="datatype-datetime"/> for the equivalent
-    type in the <productname>PostgreSQL</productname> server.
+    type interval; see <xref linkend="datatype-datetime"/> for equivalent types
+    in the
+    <productname>PostgreSQL</productname> server.
@@ -3542,2 +3538,2 @@ int PGTYPESinterval_copy(interval *intvlsrc, interval *intvldest);
-     There are a lot of other functions that deal with the decimal type in the
-     <productname>Informix</productname> compatibility mode described in <xref
+     There are a lot of other functions that deal with the decimal type, as
+     described in <xref
@@ -3811,2 +3807,2 @@ EXEC SQL DESCRIBE stmt1 INTO SQL DESCRIPTOR mydesc;
-    the <literal>SQL</literal> keyword produces SQLDA Descriptor Areas,
-    see <xref linkend="ecpg-sqlda-descriptors"/>.
+    the <literal>SQL</literal> keyword produces
+    <xref linkend="ecpg-sqlda-descriptors"/>.
@@ -5197 +5193 @@ sqlstate: 42P01
-    <literal>SQLSTATE</literal> error codes; therefore a high degree
+    <xref linkend="errcodes-appendix"/>; therefore a high degree
@@ -5199,2 +5195 @@ sqlstate: 42P01
-    throughout all applications.  For further information see
-    <xref linkend="errcodes-appendix"/>.
+    throughout all applications.
@@ -5220,2 +5215,2 @@ sqlstate: 42P01
-    it is many-to-many), so you should consult the global
-    <literal>SQLSTATE</literal> listing in <xref linkend="errcodes-appendix"/>
+    it is many-to-many), so you should consult
+    <xref linkend="errcodes-appendix"/>
@@ -6045 +6040,2 @@ ECPG = ecpg
-       See <xref linkend="libpq-status"/> and libpq's <xref linkend="libpq-PQtransactionStatus"/> for details about the returned status codes.
+       See <xref linkend="libpq-status"/> and libpq's
+       <xref linkend="libpq-PQtransactionStatus"/> for details.
@@ -6077,2 +6073,2 @@ ECPG = ecpg
-   <xref linkend="ecpg-library"/>.  For information about the large
-   object function interface, see <xref linkend="largeobjects"/>.
+   <xref linkend="ecpg-library"/>.  For more information, see
+   <xref linkend="largeobjects"/>.
@@ -6205,5 +6201,4 @@ main(void)
-   A safe way to use the embedded SQL code in a C++ application is
-   hiding the ECPG calls in a C module, which the C++ application code
-   calls into to access the database, and linking that together with
-   the rest of the C++ code.  See <xref linkend="ecpg-cpp-and-c"/>
-   about that.
+   <xref linkend="ecpg-cpp-and-c"/> describes a safe way to use embedded SQL
+   code in a C++ application: hiding the ECPG calls in a C module, which the
+   C++ application code calls into to access the database, and linking that
+   together with the rest of the C++ code.
diff --git a/doc/src/sgml/event-trigger.sgml b/doc/src/sgml/event-trigger.sgml
index c10627554bd..07ccb4d8af1 100644
--- a/doc/src/sgml/event-trigger.sgml
+++ b/doc/src/sgml/event-trigger.sgml
@@ -61,2 +61,2 @@
-     For an example on how to use the <literal>login</literal> event trigger,
-     see <xref linkend="event-trigger-database-login-example"/>.
+     For an example, see
+     <xref linkend="event-trigger-database-login-example"/>.
diff --git a/doc/src/sgml/extend.sgml b/doc/src/sgml/extend.sgml
index 63c5ec6d1eb..e60c3e6af30 100644
--- a/doc/src/sgml/extend.sgml
+++ b/doc/src/sgml/extend.sgml
@@ -43 +43 @@
-      packages of related objects (starting in <xref linkend="extend-extensions"/>)
+      <xref linkend="extend-extensions"/>
@@ -139 +139 @@
-     Enumerated (enum) types can be considered as a subcategory of base
+     <xref linkend="datatype-enum"/> can be considered as a subcategory of base
@@ -142 +141,0 @@
-     Refer to <xref linkend="datatype-enum"/> for more information.
@@ -156 +155,2 @@
-     Arrays can hold multiple values that are all of the same type.  An array
+     <xref linkend="arrays"/> can hold multiple values that are all of the same
+     type.  An array
@@ -160,2 +160 @@
-     one-dimensional arrays.  Refer to <xref linkend="arrays"/> for more
-     information.
+     one-dimensional arrays.
@@ -165 +164 @@
-     Composite types, or row types, are created whenever the user
+     <xref linkend="rowtypes"/>, or row types, are created whenever the user
@@ -171,2 +170 @@
-     record of field values.  Refer to <xref linkend="rowtypes"/>
-     for more information.
+     record of field values.
@@ -178,2 +176,2 @@
-     a few built-in ones exist.  Refer to <xref linkend="rangetypes"/>
-     for more information.
+     a few built-in ones exist.  For more information, see
+     <xref linkend="rangetypes"/>.
@@ -190 +188 @@
-     underlying type would allow.  Domains are created using
+     underlying type would allow.  <xref linkend="domains"/> are created using
@@ -192 +189,0 @@
-     Refer to <xref linkend="domains"/> for more information.
@@ -233,2 +230,3 @@
-     types</firstterm>, which are used to declare <firstterm>polymorphic
-     functions</firstterm>.  This powerful feature allows a single function
+     types</firstterm>, which are used to declare
+     <xref linkend="xfunc-sql-polymorphic-functions"/>.  This powerful feature
+     allows a single function
@@ -238,2 +236 @@
-     <xref linkend="extend-types-polymorphic-table"/>.  Some examples of
-     their use appear in <xref linkend="xfunc-sql-polymorphic-functions"/>.
+     <xref linkend="extend-types-polymorphic-table"/>.
@@ -278,2 +275 @@
-        <entry>Indicates that a function accepts any enum data type
-        (see <xref linkend="datatype-enum"/>)
+        <entry>Indicates that a function accepts any <xref linkend="datatype-enum"/>
@@ -286,2 +282 @@
-        <entry>Indicates that a function accepts any range data type
-        (see <xref linkend="rangetypes"/>)
+        <entry>Indicates that a function accepts any <xref linkend="rangetypes"/>
@@ -445,2 +440,2 @@
-     selected following the same rules as for <literal>UNION</literal> and
-     related constructs (see <xref linkend="typeconv-union-case"/>).
+     selected following the same rules as for
+     <xref linkend="typeconv-union-case"/>.
@@ -497,3 +492,3 @@ RETURNS anycompatible AS ...
-     A variadic function (one taking a variable number of arguments, as in
-     <xref linkend="xfunc-sql-variadic-functions"/>) can be
-     polymorphic: this is accomplished by declaring its last parameter as
+     A variadic function (as in
+     <xref linkend="xfunc-sql-variadic-functions"/>)
+     can be polymorphic: this is accomplished by declaring its last parameter as
@@ -808 +803,2 @@ RETURNS anycompatible AS ...
-        An extension is <firstterm>relocatable</firstterm> if it is possible to move
+        An extension supports <xref linkend="extend-extensions-relocation"/> if
+        it is possible to move
@@ -812 +807,0 @@ RETURNS anycompatible AS ...
-        See <xref linkend="extend-extensions-relocation"/> for more information.
@@ -821 +816,2 @@ RETURNS anycompatible AS ...
-        This parameter can only be set for non-relocatable extensions.
+        This parameter can only be set for non-relocatable extensions
+        (see <xref linkend="extend-extensions-relocation"/>).
@@ -826 +821,0 @@ RETURNS anycompatible AS ...
-        See <xref linkend="extend-extensions-relocation"/> for more information.
@@ -858,2 +853,2 @@ RETURNS anycompatible AS ...
-     rather than being loaded via <command>CREATE EXTENSION</command> (see example
-     script in <xref linkend="extend-extensions-example"/>).
+     rather than being loaded via <command>CREATE EXTENSION</command> (see
+     <xref linkend="extend-extensions-example"/>).
@@ -1261,4 +1256,3 @@ SELECT * FROM pg_extension_update_paths('<replaceable>extension_name</replaceabl
-     Advice about writing functions securely is provided in
-     <xref linkend="extend-extensions-security-funcs"/> below, and advice
-     about writing installation scripts securely is provided in
-     <xref linkend="extend-extensions-security-scripts"/>.
+     <xref linkend="extend-extensions-security-funcs"/> and
+     <xref linkend="extend-extensions-security-scripts"/> provide advice on
+     writing extension code and installation scripts securely, respectively.
@@ -1913 +1907,2 @@ make VPATH=/path/to/extension/source/tree install
-    <literal>TAP_TESTS</literal> enables the use of TAP tests.  Data from each
+    <literal>TAP_TESTS</literal> enables the use of
+    <xref linkend="regress-tap"/>.  Data from each
@@ -1915 +1909,0 @@ make VPATH=/path/to/extension/source/tree install
-    See also <xref linkend="regress-tap"/> for more details.
diff --git a/doc/src/sgml/external-projects.sgml b/doc/src/sgml/external-projects.sgml
index 50872dfd88e..de11d575cf5 100644
--- a/doc/src/sgml/external-projects.sgml
+++ b/doc/src/sgml/external-projects.sgml
@@ -118 +118 @@
-   contains several extensions, which are described in
+   contains several modules described in
diff --git a/doc/src/sgml/fdwhandler.sgml b/doc/src/sgml/fdwhandler.sgml
index 8685a078c52..a2e1e082c56 100644
--- a/doc/src/sgml/fdwhandler.sgml
+++ b/doc/src/sgml/fdwhandler.sgml
@@ -59,2 +59,2 @@
-     callable at the SQL level.  The callback functions are described in
-     <xref linkend="fdw-callbacks"/>.
+     callable at the SQL level.  See <xref linkend="fdw-callbacks"/> for
+     details.
@@ -1154,2 +1154,2 @@ ExecForeignTruncate(List *rels,
-     If an FDW wishes to support <firstterm>late row locking</firstterm> (as described
-     in <xref linkend="fdw-row-locking"/>), it must provide the following
+     If an FDW wishes to support <xref linkend="fdw-row-locking"/>, it must
+     provide the following
@@ -2063 +2063 @@ GetForeignServerByName(const char *name, bool missing_ok);
-     rather than using the row locking callbacks described in
+     rather than using the callbacks described in
diff --git a/doc/src/sgml/features.sgml b/doc/src/sgml/features.sgml
index 1abe6ccd3d5..d886e41e40c 100644
--- a/doc/src/sgml/features.sgml
+++ b/doc/src/sgml/features.sgml
@@ -424,2 +424,2 @@
-      types, it may be necessary to use data type formatting functions (such
-      as those in <xref linkend="functions-formatting"/>) explicitly to
+      types, it may be necessary to use the functions in
+      <xref linkend="functions-formatting"/> explicitly to
diff --git a/doc/src/sgml/func/func-admin.sgml b/doc/src/sgml/func/func-admin.sgml
index 0eae1c1f616..3f7e360f47e 100644
--- a/doc/src/sgml/func/func-admin.sgml
+++ b/doc/src/sgml/func/func-admin.sgml
@@ -993,2 +993 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset
-    <xref linkend="replication-origins"/>
-    for information about the underlying features.
+    <xref linkend="replication-origins"/>.
@@ -1049,2 +1048 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset
-        possible with the streaming-replication protocol &mdash;
-        see <xref linkend="protocol-replication"/>. The optional third
+        possible with <xref linkend="protocol-replication"/>. The optional third
@@ -1500,2 +1498,3 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset
-        primary at the start of the function call are synchronized. See
-        <xref linkend="logicaldecoding-replication-slots-synchronization"/> for details.
+        primary at the start of the function call are synchronized,
+        as described in
+        <xref linkend="logicaldecoding-replication-slots-synchronization"/>.
@@ -1599,2 +1598 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset
-        <xref linkend="storage-toast"/> for more information about
-        <acronym>TOAST</acronym>.
+        <xref linkend="storage-toast"/> for more information.
@@ -1665,2 +1663,2 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset
-           <literal>fsm</literal> returns the size of the Free Space Map
-           (see <xref linkend="storage-fsm"/>) associated with the relation.
+           <literal>fsm</literal> returns the size of the
+           <xref linkend="storage-fsm"/> associated with the relation.
@@ -1671,2 +1669,2 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset
-           <literal>vm</literal> returns the size of the Visibility Map
-           (see <xref linkend="storage-vm"/>) associated with the relation.
+           <literal>vm</literal> returns the size of the
+           <xref linkend="storage-vm"/> associated with the relation.
@@ -2498,3 +2496 @@ SELECT pg_size_pretty(sum(pg_relation_size(relid))) AS total_size
-        See <xref linkend="gin-fast-update"/> and <xref linkend="gin-tips"/>
-        for details about the pending list and <literal>fastupdate</literal>
-        option.
+        See <xref linkend="gin-fast-update"/> and <xref linkend="gin-tips"/>.
@@ -2878,2 +2874,2 @@ SELECT convert_from(pg_read_binary_file('file_in_utf8.txt'), 'UTF8');
-    The functions shown in <xref linkend="functions-advisory-locks-table"/>
-    manage advisory locks.  For details about proper use of these functions,
+    <xref linkend="functions-advisory-locks-table"/> shows the available
+    functions.  For details about proper use of these functions,
diff --git a/doc/src/sgml/func/func-aggregate.sgml b/doc/src/sgml/func/func-aggregate.sgml
index 8b5eaeb2e94..d035d76dc6e 100644
--- a/doc/src/sgml/func/func-aggregate.sgml
+++ b/doc/src/sgml/func/func-aggregate.sgml
@@ -11,12 +11,10 @@
-   from a set of input values.  The built-in general-purpose aggregate
-   functions are listed in <xref linkend="functions-aggregate-table"/>
-   while statistical aggregates are in <xref
-   linkend="functions-aggregate-statistics-table"/>.
-   The built-in within-group ordered-set aggregate functions
-   are listed in <xref linkend="functions-orderedset-table"/>
-   while the built-in within-group hypothetical-set ones are in <xref
-   linkend="functions-hypothetical-table"/>.  Grouping operations,
-   which are closely related to aggregate functions, are listed in
-   <xref linkend="functions-grouping-table"/>.
-   The special syntax considerations for aggregate
-   functions are explained in <xref linkend="syntax-aggregates"/>.
+   from a set of input values.  Built-in aggregate functions are
+   listed in <xref linkend="functions-aggregate-table"/>; statistical
+   ones in <xref linkend="functions-aggregate-statistics-table"/>;
+   within-group ordered-set ones in <xref
+   linkend="functions-orderedset-table"/>; and within-group
+   hypothetical-set ones in <xref
+   linkend="functions-hypothetical-table"/>.
+   <xref linkend="functions-grouping-table"/> covers operations
+   closely related to aggregate functions.
+   See <xref linkend="syntax-aggregates"/> for syntax details.
@@ -684,2 +682,2 @@
-   <literal>ORDER BY</literal> clause within the aggregate call, as shown in
-   <xref linkend="syntax-aggregates"/>.
+   <literal>ORDER BY</literal> clause within the aggregate call (see
+   <xref linkend="syntax-aggregates"/>).
@@ -1240,3 +1238,3 @@ SELECT count(*) FROM sometable;
-   <xref linkend="functions-hypothetical-table"/> is associated with a
-   window function of the same name defined in
-   <xref linkend="functions-window"/>.  In each case, the aggregate's result
+   <xref linkend="functions-hypothetical-table"/> is associated with a window
+   function of the same name in <xref linkend="functions-window"/>.  In each
+   case, the aggregate's result
@@ -1381 +1379 @@ SELECT count(*) FROM sometable;
-    grouping sets (see <xref linkend="queries-grouping-sets"/>) to distinguish
+    <xref linkend="queries-grouping-sets"/> to distinguish
diff --git a/doc/src/sgml/func/func-array.sgml b/doc/src/sgml/func/func-array.sgml
index 7f162bd7670..dc7cae84760 100644
--- a/doc/src/sgml/func/func-array.sgml
+++ b/doc/src/sgml/func/func-array.sgml
@@ -140,2 +140,2 @@
-   See <xref linkend="arrays"/> for more details about array operator
-   behavior.  See <xref linkend="indexes-types"/> for more details about
+   See <xref linkend="arrays"/>.  See <xref linkend="indexes-types"/> for more
+   details about
@@ -147,2 +147 @@
-   available for use with array types. See <xref linkend="arrays"/>
-   for more information  and examples of the use of these functions.
+   available for use with array types. See <xref linkend="arrays"/>.
@@ -643,2 +642,2 @@
-    See also <xref linkend="functions-aggregate"/> about the aggregate
-    function <function>array_agg</function> for use with arrays.
+    See also <xref linkend="functions-aggregate"/>, including
+    <function>array_agg</function>, for use with arrays.
diff --git a/doc/src/sgml/func/func-binarystring.sgml b/doc/src/sgml/func/func-binarystring.sgml
index dc6b7e57ea7..b2840d7d029 100644
--- a/doc/src/sgml/func/func-binarystring.sgml
+++ b/doc/src/sgml/func/func-binarystring.sgml
@@ -666,2 +666 @@
-       (see <xref linkend="multibyte-conversions-supported"/> for
-       available conversions).
+       (see <xref linkend="multibyte-conversions-supported"/>).
@@ -688,2 +687 @@
-       (see <xref linkend="multibyte-conversions-supported"/> for
-       available conversions).
+       (see <xref linkend="multibyte-conversions-supported"/>).
@@ -709,2 +707 @@
-       (see <xref linkend="multibyte-conversions-supported"/> for
-       available conversions).
+       (see <xref linkend="multibyte-conversions-supported"/>).
@@ -904 +901 @@ cast(-1234 AS bytea)           <lineannotation>\xfffffb2e</lineannotation>
-   See also the aggregate function <function>string_agg</function> in
+   See also <function>string_agg</function> in
diff --git a/doc/src/sgml/func/func-comparisons.sgml b/doc/src/sgml/func/func-comparisons.sgml
index 6a6e0bd4019..c534e3ddb19 100644
--- a/doc/src/sgml/func/func-comparisons.sgml
+++ b/doc/src/sgml/func/func-comparisons.sgml
@@ -213 +213 @@ AND
-   as described in <xref linkend="sql-syntax-row-constructors"/>.
+   See <xref linkend="sql-syntax-row-constructors"/>.
@@ -289,3 +289,3 @@ AND
-   results of two row constructors (as in
-   <xref linkend="row-wise-comparison"/>) or comparing a row constructor
-   to the output of a subquery (as in <xref linkend="functions-subquery"/>).
+   results of two row constructors (see <xref linkend="row-wise-comparison"/>)
+   or comparing a row constructor
+   to the output of a subquery (see <xref linkend="functions-subquery"/>).
@@ -311,2 +311,2 @@ AND
-   <literal>IS [ NOT ] DISTINCT FROM</literal> for row constructors (see
-   <xref linkend="row-wise-comparison"/>).
+   <literal>IS [ NOT ] DISTINCT FROM</literal> for
+   <xref linkend="row-wise-comparison"/>.
@@ -331,2 +331,2 @@ AND
-   purposes such as replication and B-Tree deduplication (see <xref
-   linkend="btree-deduplication"/>).  They are not intended to be
+   purposes such as replication and <xref linkend="btree-deduplication"/>.  They
+   are not intended to be
diff --git a/doc/src/sgml/func/func-datetime.sgml b/doc/src/sgml/func/func-datetime.sgml
index 39dddde4fe1..e6956a49f98 100644
--- a/doc/src/sgml/func/func-datetime.sgml
+++ b/doc/src/sgml/func/func-datetime.sgml
@@ -10 +10 @@
-   <literal>*</literal>, etc.).  For formatting functions, refer to
+   <literal>*</literal>, etc.).  For more information, refer to
@@ -12,2 +12 @@
-   the background information on date/time data types from <xref
-   linkend="datatype-datetime"/>.
+   the background information on <xref linkend="datatype-datetime"/>.
@@ -371,2 +370,2 @@
-         Current date and time (changes during statement execution);
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/> (changes during statement
+         execution)
@@ -389 +388 @@
-         Current date; see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/>
@@ -420,2 +419 @@
-         Current time of day, with limited precision;
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/>, with limited precision
@@ -438,2 +436,2 @@
-         Current date and time (start of current transaction);
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/> (start of current
+         transaction)
@@ -453,2 +451,2 @@
-         Current date and time (start of current transaction), with limited precision;
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/> (start of current
+         transaction), with limited precision
@@ -507,2 +505,2 @@
-         Get timestamp subfield (equivalent to <function>extract</function>);
-         see <xref linkend="functions-datetime-extract"/>
+         Get timestamp subfield (equivalent to
+         <xref linkend="functions-datetime-extract"/>)
@@ -522,2 +520,2 @@
-         Get interval subfield (equivalent to <function>extract</function>);
-         see <xref linkend="functions-datetime-extract"/>
+         Get interval subfield (equivalent to
+         <xref linkend="functions-datetime-extract"/>)
@@ -753,2 +751 @@
-         Current time of day, with limited precision;
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/>, with limited precision
@@ -771,2 +768,2 @@
-         Current date and time (start of current transaction);
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/> (start of current
+         transaction)
@@ -922,2 +919,2 @@
-         Current date and time (start of current transaction);
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/> (start of current
+         transaction)
@@ -976,2 +973,2 @@
-         Current date and time (start of current statement);
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/> (start of current
+         statement)
@@ -994,3 +991,3 @@
-         Current date and time
-         (like <function>clock_timestamp</function>, but as a <type>text</type> string);
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/>
+         (like <function>clock_timestamp</function>, but as a <type>text</type>
+         string)
@@ -1013,2 +1010,2 @@
-         Current date and time (start of current transaction);
-         see <xref linkend="functions-datetime-current"/>
+         <xref linkend="functions-datetime-current"/> (start of current
+         transaction)
@@ -1388 +1385 @@ SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');
-        The <firstterm>Julian Date</firstterm> corresponding to the
+        The <xref linkend="datetime-julian-dates"/> corresponding to the
@@ -1390,2 +1387 @@ SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');
-        that are not local midnight result in a fractional value.  See
-        <xref linkend="datetime-julian-dates"/> for more information.
+        that are not local midnight result in a fractional value.
@@ -1636,2 +1632 @@ SELECT EXTRACT(MINUTES FROM INTERVAL '80 minutes');
-    for computational processing.  For formatting date/time values for
-    display, see <xref linkend="functions-formatting"/>.
+    for computational processing.  See <xref linkend="functions-formatting"/>.
diff --git a/doc/src/sgml/func/func-enum.sgml b/doc/src/sgml/func/func-enum.sgml
index 6227afe4057..5709c2f95c6 100644
--- a/doc/src/sgml/func/func-enum.sgml
+++ b/doc/src/sgml/func/func-enum.sgml
@@ -5 +5 @@
-   For enum types (described in <xref linkend="datatype-enum"/>),
+   For <xref linkend="datatype-enum"/>,
diff --git a/doc/src/sgml/func/func-event-triggers.sgml b/doc/src/sgml/func/func-event-triggers.sgml
index 9f3f51e9f51..9adce923803 100644
--- a/doc/src/sgml/func/func-event-triggers.sgml
+++ b/doc/src/sgml/func/func-event-triggers.sgml
@@ -10,2 +10 @@
-    For more information about event triggers,
-    see <xref linkend="event-triggers"/>.
+    For more information, see <xref linkend="event-triggers"/>.
diff --git a/doc/src/sgml/func/func-info.sgml b/doc/src/sgml/func/func-info.sgml
index 8ffa7e83275..c324b225a71 100644
--- a/doc/src/sgml/func/func-info.sgml
+++ b/doc/src/sgml/func/func-info.sgml
@@ -387,2 +387 @@
-        Returns true if a <acronym>JIT</acronym> compiler extension is
-        available (see <xref linkend="jit"/>) and the
+        Returns true if <xref linkend="jit"/> is available and the
@@ -470,2 +469 @@
-        <xref linkend="xact-serializable"/> for more information about
-        serializable and deferrable transactions.
+        <xref linkend="xact-serializable"/>.
@@ -589,2 +587 @@
-   (See <xref linkend="ddl-priv"/> for more information about
-   privileges.)
+   (See <xref linkend="ddl-priv"/> for more information.)
@@ -964,2 +961 @@ SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');
-   representation of access privileges.  See <xref linkend="ddl-priv"/>
-   for information about how to read access privilege values.
+   representation of access privileges.  See <xref linkend="ddl-priv"/>.
@@ -1063,2 +1059,2 @@ SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');
-        <acronym>ACL</acronym> entry is null. (The default access privileges
-        are described in <xref linkend="ddl-priv"/>.)
+        <acronym>ACL</acronym> entry is null. (The defaults are described in
+        <xref linkend="ddl-priv"/>.)
@@ -1723,2 +1719 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
-        for passing to the sequence functions (see
-        <xref linkend="functions-sequence"/>).
+        for passing to <xref linkend="functions-sequence"/>.
@@ -2844,3 +2839,3 @@ acl      | {postgres=arwdDxtm/postgres,foo=r/postgres}
-        linkend="transaction-id"/> for details.  If executed in a
-        subtransaction, this will return the top-level transaction ID;
-        see <xref linkend="subxacts"/> for details.
+        linkend="transaction-id"/> for details.  If executed in
+        <xref linkend="subxacts"/>, this will return the top-level transaction
+        ID.
@@ -2909,2 +2904 @@ acl      | {postgres=arwdDxtm/postgres,foo=r/postgres}
-        subtransaction IDs are not shown;  see <xref linkend="subxacts"/>
-        for details.
+        <xref linkend="subxacts"/> are not shown.
@@ -2965,2 +2959 @@ acl      | {postgres=arwdDxtm/postgres,foo=r/postgres}
-        a subtransaction ID (subxid);  see <xref linkend="subxacts"/> for
-        details.
+        <xref linkend="subxacts"/> (subxid).
@@ -2984 +2977 @@ acl      | {postgres=arwdDxtm/postgres,foo=r/postgres}
-        <literal>keysh</literal> correspond to the row-level locks
+        <literal>keysh</literal> correspond to <xref linkend="locking-rows"/>
@@ -2987 +2980 @@ acl      | {postgres=arwdDxtm/postgres,foo=r/postgres}
-        respectively, as described in <xref linkend="locking-rows"/>.  Two
+        respectively.  Two
diff --git a/doc/src/sgml/func/func-json.sgml b/doc/src/sgml/func/func-json.sgml
index 3d97e2b5375..aa60819a6bd 100644
--- a/doc/src/sgml/func/func-json.sgml
+++ b/doc/src/sgml/func/func-json.sgml
@@ -73,3 +73,2 @@
-   <xref linkend="sqltr-19075-6"/>. For details on JSON types
-   supported in <productname>PostgreSQL</productname>,
-   see <xref linkend="datatype-json"/>.
+   <xref linkend="sqltr-19075-6"/>. For more information, see
+   <xref linkend="datatype-json"/>.
@@ -83,2 +82 @@
-   are available for use with JSON data types (see <xref
-   linkend="datatype-json"/>).
+   are available for use with <xref linkend="datatype-json"/>.
@@ -90,6 +88,6 @@
-   See also <xref linkend="functions-aggregate"/> for the aggregate
-   function <function>json_agg</function> which aggregates record
-   values as JSON, the aggregate function
-   <function>json_object_agg</function> which aggregates pairs of values
-   into a JSON object, and their <type>jsonb</type> equivalents,
-   <function>jsonb_agg</function> and <function>jsonb_object_agg</function>.
+   See also <xref linkend="functions-aggregate"/> for
+   <function>json_agg</function>, which aggregates record
+   values as JSON, <function>json_object_agg</function>, which aggregates
+   pairs of values into a JSON object, and their <type>jsonb</type>
+   equivalents, <function>jsonb_agg</function> and
+   <function>jsonb_object_agg</function>.
@@ -244,2 +242,2 @@
-   Some further operators exist only for <type>jsonb</type>, as shown
-   in <xref linkend="functions-jsonb-op-table"/>.
+   <xref linkend="functions-jsonb-op-table"/> exist only for
+   <type>jsonb</type>.
@@ -276 +274 @@
-        (See <xref linkend="json-containment"/> for details about containment.)
+        (See <xref linkend="json-containment"/>.)
@@ -1994,3 +1992 @@ SELECT '{
-   More examples of using <type>jsonpath</type> operators
-   and methods within path expressions appear below in
-   <xref linkend="functions-sqljson-path-operators"/>.
+   More examples appear in <xref linkend="functions-sqljson-path-operators"/>.
@@ -3318 +3314 @@ $.* ? (@ like_regex "^\\d+$")
-   SQL/JSON functions <literal>JSON_EXISTS()</literal>,
+   <literal>JSON_EXISTS()</literal>,
diff --git a/doc/src/sgml/func/func-logical.sgml b/doc/src/sgml/func/func-logical.sgml
index 65e50e65a81..0375bb782ed 100644
--- a/doc/src/sgml/func/func-logical.sgml
+++ b/doc/src/sgml/func/func-logical.sgml
@@ -143,2 +143 @@
-    linkend="syntax-express-eval"/> for more information about the
-    order of evaluation of subexpressions.)
+    linkend="syntax-express-eval"/>.)
diff --git a/doc/src/sgml/func/func-matching.sgml b/doc/src/sgml/func/func-matching.sgml
index ae1dff66722..29d495e3744 100644
--- a/doc/src/sgml/func/func-matching.sgml
+++ b/doc/src/sgml/func/func-matching.sgml
@@ -100,2 +100,2 @@
-    <function>LIKE</function> pattern matching supports nondeterministic
-    collations (see <xref linkend="collation-nondeterministic"/>), such as
+    <function>LIKE</function> pattern matching supports
+<xref linkend="collation-nondeterministic"/>, such as
@@ -1165 +1165 @@ regexp_substr('ABCDEFGHI', '(c..)(...)', 1, 1, 'i', 2)
-       <entry> a <firstterm>bracket expression</firstterm>,
+       <entry> a bracket expression,
@@ -1181 +1181 @@ regexp_substr('ABCDEFGHI', '(c..)(...)', 1, 1, 'i', 2)
-       is an <firstterm>escape</firstterm>, see <xref linkend="posix-escape-sequences"/>
+       is <xref linkend="posix-escape-sequences"/>
diff --git a/doc/src/sgml/func/func-math.sgml b/doc/src/sgml/func/func-math.sgml
index 9dcf97e7c9e..0cf595222cb 100644
--- a/doc/src/sgml/func/func-math.sgml
+++ b/doc/src/sgml/func/func-math.sgml
@@ -1153,3 +1153,3 @@
-   The <function>random()</function> and <function>random_normal()</function>
-   functions listed in <xref linkend="functions-math-random-table"/> and
-   <xref linkend="functions-datetime-table"/> use a
+   <function>random()</function> and <function>random_normal()</function>
+   (listed in <xref linkend="functions-math-random-table"/> and
+   <xref linkend="functions-datetime-table"/>) use a
diff --git a/doc/src/sgml/func/func-range.sgml b/doc/src/sgml/func/func-range.sgml
index 3c5a34796a1..a6a49542cd3 100644
--- a/doc/src/sgml/func/func-range.sgml
+++ b/doc/src/sgml/func/func-range.sgml
@@ -5 +5 @@
-   See <xref linkend="rangetypes"/> for an overview of range types.
+   See <xref linkend="rangetypes"/>.
diff --git a/doc/src/sgml/func/func-srf.sgml b/doc/src/sgml/func/func-srf.sgml
index 34a45971aad..cf76e1641e9 100644
--- a/doc/src/sgml/func/func-srf.sgml
+++ b/doc/src/sgml/func/func-srf.sgml
@@ -11,2 +11,2 @@
-   The most widely used functions in this class are series generating
-   functions, as detailed in <xref linkend="functions-srf-series"/> and
+   The most widely used functions in this class are
+   <xref linkend="functions-srf-series"/> and
diff --git a/doc/src/sgml/func/func-string.sgml b/doc/src/sgml/func/func-string.sgml
index 0786573d7be..c43b27b8e32 100644
--- a/doc/src/sgml/func/func-string.sgml
+++ b/doc/src/sgml/func/func-string.sgml
@@ -544,3 +544,3 @@
-    There are also pattern-matching operators, which are described in
-    <xref linkend="functions-matching"/>, and operators for full-text
-    search, which are described in <xref linkend="textsearch"/>.
+    There are also <xref linkend="functions-matching"/> operators, and operators
+    for
+    <xref linkend="textsearch"/>.
@@ -677,2 +677,2 @@
-         Formats arguments according to a format string;
-         see <xref linkend="functions-string-format"/>.
+         Formats arguments according to a
+         <xref linkend="functions-string-format"/> string.
@@ -1580,3 +1580,2 @@
-        This function provides a (non-standard) alternative to string
-        constants with Unicode escapes (see <xref
-        linkend="sql-syntax-strings-uescape"/>).
+        This function provides a (non-standard) alternative to
+        <xref linkend="sql-syntax-strings-uescape"/>.
@@ -1612 +1611 @@
-    See also the aggregate function <function>string_agg</function> in
+    See also <function>string_agg</function> in
diff --git a/doc/src/sgml/func/func-subquery.sgml b/doc/src/sgml/func/func-subquery.sgml
index f954f3bf133..3fab45374ff 100644
--- a/doc/src/sgml/func/func-subquery.sgml
+++ b/doc/src/sgml/func/func-subquery.sgml
@@ -130 +130 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
-   as described in <xref linkend="sql-syntax-row-constructors"/>.
+   See <xref linkend="sql-syntax-row-constructors"/>.
@@ -186 +186 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
-   as described in <xref linkend="sql-syntax-row-constructors"/>.
+   See <xref linkend="sql-syntax-row-constructors"/>.
@@ -251 +251 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
-   as described in <xref linkend="sql-syntax-row-constructors"/>.
+   See <xref linkend="sql-syntax-row-constructors"/>.
@@ -267,2 +267 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
-   See <xref linkend="row-wise-comparison"/> for details about the meaning
-   of a row constructor comparison.
+   See <xref linkend="row-wise-comparison"/>.
@@ -307 +306 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
-   as described in <xref linkend="sql-syntax-row-constructors"/>.
+   See <xref linkend="sql-syntax-row-constructors"/>.
@@ -323,2 +322 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
-   See <xref linkend="row-wise-comparison"/> for details about the meaning
-   of a row constructor comparison.
+   See <xref linkend="row-wise-comparison"/>.
@@ -342 +340 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
-   as described in <xref linkend="sql-syntax-row-constructors"/>.
+   See <xref linkend="sql-syntax-row-constructors"/>.
@@ -351,2 +349 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
-   See <xref linkend="row-wise-comparison"/> for details about the meaning
-   of a row constructor comparison.
+   See <xref linkend="row-wise-comparison"/>.
diff --git a/doc/src/sgml/func/func-textsearch.sgml b/doc/src/sgml/func/func-textsearch.sgml
index 290ad81d697..3ac2769bd13 100644
--- a/doc/src/sgml/func/func-textsearch.sgml
+++ b/doc/src/sgml/func/func-textsearch.sgml
@@ -19,3 +19 @@
-   for full text searching.  See <xref linkend="textsearch"/> for a detailed
-   explanation of <productname>PostgreSQL</productname>'s text search
-   facility.
+   for full text searching.  See <xref linkend="textsearch"/>.
diff --git a/doc/src/sgml/func/func-uuid.sgml b/doc/src/sgml/func/func-uuid.sgml
index 2638e2bf855..7d5e301448f 100644
--- a/doc/src/sgml/func/func-uuid.sgml
+++ b/doc/src/sgml/func/func-uuid.sgml
@@ -176,2 +176 @@
-   See <xref linkend="datatype-uuid"/> for details on the data type
-   <type>uuid</type> in <productname>PostgreSQL</productname>.
+   See <xref linkend="datatype-uuid"/>.
diff --git a/doc/src/sgml/func/func-window.sgml b/doc/src/sgml/func/func-window.sgml
index bb41387f873..adeb5b0be6f 100644
--- a/doc/src/sgml/func/func-window.sgml
+++ b/doc/src/sgml/func/func-window.sgml
@@ -10 +10 @@
-   <firstterm>Window functions</firstterm> provide the ability to perform
+   <xref linkend="tutorial-window"/> provide the ability to perform
@@ -12,3 +12 @@
-   row.  See <xref linkend="tutorial-window"/> for an introduction to this
-   feature, and <xref linkend="syntax-window-functions"/> for syntax
-   details.
+   row; see <xref linkend="syntax-window-functions"/> for syntax details.
@@ -27,2 +25 @@
-   can be used as a window function; see
-   <xref linkend="functions-aggregate"/> for a list of the built-in aggregates.
+   can be used as a window function; see <xref linkend="functions-aggregate"/>.
diff --git a/doc/src/sgml/func/func-xml.sgml b/doc/src/sgml/func/func-xml.sgml
index 511bc90852a..8d1f4702e8c 100644
--- a/doc/src/sgml/func/func-xml.sgml
+++ b/doc/src/sgml/func/func-xml.sgml
@@ -12,2 +12,2 @@
-   linkend="datatype-xml"/> for information about the <type>xml</type>
-   type.  The function-like expressions <function>xmlparse</function>
+   linkend="datatype-xml"/> for more information.  The function-like expressions
+   <function>xmlparse</function>
@@ -402,2 +402 @@ SELECT xmlroot(xmlparse(document '<?xml version="1.1"?><content>abc</content>'),
-     See <xref linkend="functions-aggregate"/> for additional information
-     about aggregate functions.
+     See <xref linkend="functions-aggregate"/>.
@@ -536,2 +535 @@ SELECT xmlexists('//town[text() = ''Toronto'']' PASSING BY VALUE '<towns><town>T
-     expression, as discussed in
-     <xref linkend="functions-xml-limits-xpath1"/>.
+     expression (see <xref linkend="functions-xml-limits-xpath1"/>).
@@ -794,3 +792,2 @@ SELECT xpath_exists('/my:a/text()', '<my:a xmlns:my="http://example.com">test</m
-     but <productname>PostgreSQL</productname> allows only XPath 1.0
-     expressions, as discussed in
-     <xref linkend="functions-xml-limits-xpath1"/>.
+     but <productname>PostgreSQL</productname> allows only XPath 1.0 expressions
+     (see <xref linkend="functions-xml-limits-xpath1"/>).
@@ -888 +885 @@ SELECT xpath_exists('/my:a/text()', '<my:a xmlns:my="http://example.com">test</m
-     standard, as discussed in <xref linkend="functions-xml-limits-casts"/>.
+     standard (see <xref linkend="functions-xml-limits-casts"/>).
diff --git a/doc/src/sgml/fuzzystrmatch.sgml b/doc/src/sgml/fuzzystrmatch.sgml
index bcadc440e39..b22c0fd394d 100644
--- a/doc/src/sgml/fuzzystrmatch.sgml
+++ b/doc/src/sgml/fuzzystrmatch.sgml
@@ -181,2 +181,2 @@ SELECT daitch_mokotoff('Schwartzenegger');
-   can be considered a match.  A GIN index may
-   be used for efficiency, see <xref linkend="gin"/> and this example:
+   can be considered a match.  A <xref linkend="gin"/> may
+   be used for efficiency, as shown in this example:
@@ -202,2 +202,2 @@ SELECT * FROM s WHERE daitch_mokotoff(nm) &amp;&amp; daitch_mokotoff('Jens');
-   For indexing and matching of any number of names in any order, Full Text
-   Search features can be used. See <xref linkend="textsearch"/> and this
+   For indexing and matching of any number of names in any order, use
+   <xref linkend="textsearch"/>, as shown in this
@@ -241,2 +241,2 @@ SELECT * FROM s WHERE soundex_tsvector(nm) @@ soundex_tsquery('Jameson John');
-   an expression.  A stored generated column can be used for this; see
-   <xref linkend="ddl-generated-columns"/>.
+   an expression.  A stored generated column can be used for this.
+   See <xref linkend="ddl-generated-columns"/> for more information.
diff --git a/doc/src/sgml/gin.sgml b/doc/src/sgml/gin.sgml
index 82410b1fbdf..27a8a16739f 100644
--- a/doc/src/sgml/gin.sgml
+++ b/doc/src/sgml/gin.sgml
@@ -72 +72 @@
-  (Some of the optional modules described in <xref linkend="contrib"/>
+  (Some of the optional modules in <xref linkend="contrib"/>
@@ -195 +195 @@
-       operator class (see <xref linkend="xindex-strategies"/>).
+       operator class, as defined in <xref linkend="xindex-strategies"/>.
@@ -443 +443 @@
-  To support <quote>partial match</quote> queries, an operator class must
+  To support <xref linkend="gin-partial-match"/>, an operator class must
@@ -446,2 +446 @@
-  parameter when a partial-match query is encountered.  See
-  <xref linkend="gin-partial-match"/> for details.
+  parameter when a partial-match query is encountered.
diff --git a/doc/src/sgml/gist.sgml b/doc/src/sgml/gist.sgml
index 3f1a01f381f..3a51555c000 100644
--- a/doc/src/sgml/gist.sgml
+++ b/doc/src/sgml/gist.sgml
@@ -50 +50 @@
-  (Some of the optional modules described in <xref linkend="contrib"/>
+  (Some of the optional modules in <xref linkend="contrib"/>
@@ -1211,3 +1211,3 @@ my_sortsupport(PG_FUNCTION_ARGS)
-       This support function corresponds to the index access method callback
-       function <structfield>amtranslatecmptype</structfield> (see <xref
-       linkend="index-functions"/>).  The
+       This support function corresponds to the
+       <structfield>amtranslatecmptype</structfield>
+       callback function in <xref linkend="index-functions"/>.  The
diff --git a/doc/src/sgml/glossary.sgml b/doc/src/sgml/glossary.sgml
index b881ae71198..6c77a697963 100644
--- a/doc/src/sgml/glossary.sgml
+++ b/doc/src/sgml/glossary.sgml
@@ -1894,2 +1894,2 @@
-     exist in schema <literal>information_schema</literal>
-     (see <xref linkend="information-schema" />) that expose some
+     exist in <xref linkend="information-schema"/>
+     that expose some
@@ -2060,2 +2060,2 @@
-     considered together as a single 64-bit value;  see <xref
-     linkend="transaction-id"/> for more details.
+     considered together as a single 64-bit value;  see
+     <xref linkend="transaction-id"/>.
diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml
index 6d9636bd125..dcf3b34a124 100644
--- a/doc/src/sgml/high-availability.sgml
+++ b/doc/src/sgml/high-availability.sgml
@@ -101,3 +101,4 @@
-     Using a network file system is also possible, though care must be
-     taken that the file system has full <acronym>POSIX</acronym> behavior (see <xref
-     linkend="creating-cluster-nfs"/>).  One significant limitation of this
+     Using <xref linkend="creating-cluster-nfs"/> is also possible, though care
+     must be
+     taken that the file system has full <acronym>POSIX</acronym> behavior.  One
+     significant limitation of this
@@ -153,4 +154,3 @@ protocol to make nodes agree on a serializable transactional order.
-     A standby server can be implemented using file-based log shipping
-     (<xref linkend="warm-standby"/>) or streaming physical replication (see
-     <xref linkend="streaming-replication"/>), or a combination of both. For
-     information on hot standby, see <xref linkend="hot-standby"/>.
+     A standby server can be implemented using <xref linkend="warm-standby"/> or
+     <xref linkend="streaming-replication"/>, or a combination of both. For
+     more information, see <xref linkend="hot-standby"/>.
@@ -171,3 +171,3 @@ protocol to make nodes agree on a serializable transactional order.
-     to flow in multiple directions.  For more information on logical
-     replication, see <xref linkend="logical-replication"/>.  Through the
-     logical decoding interface (<xref linkend="logicaldecoding"/>),
+     to flow in multiple directions.  For more information, see
+     <xref linkend="logical-replication"/>.  Through
+     <xref linkend="logicaldecoding"/>,
@@ -524,3 +524,3 @@ protocol to make nodes agree on a serializable transactional order.
-   Record-based log shipping is more granular and streams WAL changes
-   incrementally over a network connection (see <xref
-   linkend="streaming-replication"/>).
+   Record-based <xref linkend="streaming-replication"/> is more granular and
+   transfers WAL changes
+   incrementally over a network connection.
@@ -538 +538 @@ protocol to make nodes agree on a serializable transactional order.
-   Streaming replication (see <xref linkend="streaming-replication"/>)
+   <xref linkend="streaming-replication"/>
@@ -551,2 +551,2 @@ protocol to make nodes agree on a serializable transactional order.
-   it is called a <firstterm>hot standby</firstterm> server. See
-   <xref linkend="hot-standby"/> for more information.
+   it is called a <firstterm>hot standby</firstterm> server (see
+   <xref linkend="hot-standby"/>).
@@ -667,3 +667,3 @@ protocol to make nodes agree on a serializable transactional order.
-    Set up continuous archiving on the primary to an archive directory
-    accessible from the standby, as described
-    in <xref linkend="continuous-archiving"/>. The archive location should be
+    Set up <xref linkend="continuous-archiving"/> on the primary to an archive
+    directory
+    accessible from the standby. The archive location should be
@@ -688 +688 @@ protocol to make nodes agree on a serializable transactional order.
-    Take a base backup as described in <xref linkend="backup-base-backup"/>
+    Use <xref linkend="backup-base-backup"/>
@@ -807,2 +807,2 @@ archive_cleanup_command = 'pg_archivecleanup /path/to/archive "%r"'
-    To use streaming replication, set up a file-based log-shipping standby
-    server as described in <xref linkend="warm-standby"/>. The step that
+    To use streaming replication, set up <xref linkend="warm-standby"/>. The
+    step that
@@ -812 +812,2 @@ archive_cleanup_command = 'pg_archivecleanup /path/to/archive "%r"'
-    <xref linkend="guc-listen-addresses"/> and authentication options
+    <xref linkend="guc-listen-addresses"/> and
+    <xref linkend="streaming-replication-authentication"/> options
@@ -815 +816 @@ archive_cleanup_command = 'pg_archivecleanup /path/to/archive "%r"'
-    server (see <xref linkend="streaming-replication-authentication"/>).
+    server.
@@ -981,3 +982,3 @@ primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass'
-     Slots can be created and dropped either via the streaming replication
-     protocol (see <xref linkend="protocol-replication"/>) or via SQL
-     functions (see <xref linkend="functions-replication"/>).
+     Slots can be created and dropped either via
+     <xref linkend="protocol-replication"/> or via
+     <xref linkend="functions-replication"/>.
@@ -1043,2 +1044,2 @@ primary_slot_name = 'node_a_slot'
-    Cascading replication is currently asynchronous. Synchronous replication
-    (see <xref linkend="synchronous-replication"/>) settings have no effect on
+    Cascading replication is currently asynchronous.
+    <xref linkend="synchronous-replication"/> settings have no effect on
@@ -1555,2 +1556,2 @@ postgres=# WAIT FOR LSN '0/306EE20';
-    If you have opted for logical replication slot synchronization (see
-    <xref linkend="logicaldecoding-replication-slots-synchronization"/>),
+    If you have opted for
+    <xref linkend="logicaldecoding-replication-slots-synchronization"/>,
@@ -1616,2 +1617,2 @@ postgres=# WAIT FOR LSN '0/306EE20';
-    start of each transaction, depending on the current transaction isolation
-    level.  For more details, see <xref linkend="transaction-iso"/>.
+    start of each transaction, depending on the current
+    <xref linkend="transaction-iso"/>.
@@ -2400,3 +2401,2 @@ HINT:  You can then restart the server after making the necessary configuration
-     The Serializable transaction isolation level is not yet available in hot
-     standby.  (See <xref linkend="xact-serializable"/> and
-     <xref linkend="serializable-consistency"/> for details.)
+     <xref linkend="xact-serializable"/> is not yet available in hot
+     standby (see also <xref linkend="serializable-consistency"/> for details).
diff --git a/doc/src/sgml/hstore.sgml b/doc/src/sgml/hstore.sgml
index 780ee224dce..c8c807436b8 100644
--- a/doc/src/sgml/hstore.sgml
+++ b/doc/src/sgml/hstore.sgml
@@ -77,2 +77 @@ key =&gt; NULL
-   <xref linkend="sql-syntax-strings"/> for more on the handling of string
-   constants.
+   <xref linkend="sql-syntax-strings"/> for more information.
diff --git a/doc/src/sgml/indexam.sgml b/doc/src/sgml/indexam.sgml
index f48da318530..723cfe3d00a 100644
--- a/doc/src/sgml/indexam.sgml
+++ b/doc/src/sgml/indexam.sgml
@@ -32,2 +32,2 @@
-   furthermore use the standard page layout described in <xref
-   linkend="storage-page-layout"/>, and most use the same format for index
+   furthermore use the standard <xref linkend="storage-page-layout"/>, and most
+   use the same format for index
@@ -88,2 +88,2 @@
-   visible or callable at the SQL level.  The support functions are described
-   in <xref linkend="index-functions"/>.
+   visible or callable at the SQL level.  See <xref linkend="index-functions"/>
+   for details.
@@ -657,2 +657,2 @@ amadjustmembers (Oid opfamilyoid,
-   index scanning are described more fully in <xref linkend="index-scanning"/>,
-   below.  An index access method can support <quote>plain</quote> index scans,
+   <xref linkend="index-scanning"/> are described more fully below.  An index
+   access method can support <quote>plain</quote> index scans,
diff --git a/doc/src/sgml/indices.sgml b/doc/src/sgml/indices.sgml
index 55f39b0df2f..7e09a1e9e6b 100644
--- a/doc/src/sgml/indices.sgml
+++ b/doc/src/sgml/indices.sgml
@@ -259 +259,2 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable>
-   GiST indexes are not a single kind of index, but rather an infrastructure
+   <xref linkend="gist"/> are not a single kind of index, but rather an
+   infrastructure
@@ -278 +279 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable>
-   projects.  For more information see <xref linkend="gist"/>.
+   projects.
@@ -308 +309,2 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
-   SP-GiST indexes, like GiST indexes, offer an infrastructure that supports
+   <xref linkend="spgist"/>, like GiST indexes, offer an infrastructure that
+   supports
@@ -324 +325,0 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
-   For more information see <xref linkend="spgist"/>.
@@ -356 +357 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
-   Like GiST and SP-GiST, GIN can support
+   Like GiST and SP-GiST, <xref linkend="gin"/> can support
@@ -374 +375 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
-   projects.  For more information see <xref linkend="gin"/>.
+   projects.
@@ -391 +392,2 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
-   BRIN indexes (a shorthand for Block Range INdexes) store summaries about
+   <xref linkend="brin"/> (a shorthand for Block Range INdexes) store summaries
+   about
@@ -410 +411,0 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
-   For more information see <xref linkend="brin"/>.
@@ -1106,2 +1107,2 @@ CREATE INDEX mytable_cat_data ON mytable (category, data);
-    you should look into using partitioning instead (see
-    <xref linkend="ddl-partitioning"/>).  With that mechanism, the system
+    you should look into using <xref linkend="ddl-partitioning"/> instead.  With
+    that mechanism, the system
diff --git a/doc/src/sgml/information_schema.sgml b/doc/src/sgml/information_schema.sgml
index 4be4f1ef1ef..e07f386f2c1 100644
--- a/doc/src/sgml/information_schema.sgml
+++ b/doc/src/sgml/information_schema.sgml
@@ -902 +902,2 @@
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
@@ -3242,4 +3243,2 @@ ORDER BY c.ordinal_position;
-   generally, it is better to use the view
-   <literal>applicable_roles</literal> instead of this one; See
-   <xref linkend="infoschema-applicable-roles"/> for details on
-   <literal>applicable_roles</literal> view.
+   generally, it is better to use the
+   <xref linkend="infoschema-applicable-roles"/> view instead of this one.
@@ -3889 +3888,2 @@ ORDER BY c.ordinal_position;
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
@@ -5567 +5567,2 @@ ORDER BY c.ordinal_position;
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
@@ -5987 +5988,2 @@ ORDER BY c.ordinal_position;
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
@@ -6125 +6127,2 @@ ORDER BY c.ordinal_position;
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
@@ -6327 +6330,2 @@ ORDER BY c.ordinal_position;
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
@@ -6438 +6442,2 @@ ORDER BY c.ordinal_position;
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
@@ -8342 +8347,2 @@ ORDER BY c.ordinal_position;
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
@@ -8941,2 +8947,2 @@ ORDER BY c.ordinal_position;
-   extensions, are not shown here.  For domains,
-   see <xref linkend="infoschema-domains"/> instead.
+   extensions, are not shown here.  For domain data types,
+   see <xref linkend="infoschema-domains"/>.
@@ -9545 +9551,2 @@ ORDER BY c.ordinal_position;
-       The <quote>specific name</quote> of the function.  See <xref linkend="infoschema-routines"/> for more information.
+       The <quote>specific name</quote> of the function, as documented in
+       <xref linkend="infoschema-routines"/>.
diff --git a/doc/src/sgml/install-binaries.sgml b/doc/src/sgml/install-binaries.sgml
index 001c3c7be01..6dd13804772 100644
--- a/doc/src/sgml/install-binaries.sgml
+++ b/doc/src/sgml/install-binaries.sgml
@@ -13,2 +13,2 @@
-  the recommended way to install PostgreSQL for users of the system. Building
-  from source (see <xref linkend="installation" />) is only recommended for
+  the recommended way to install PostgreSQL for users of the system.
+  <xref linkend="installation"/> is only recommended for
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index b345a105674..40a89049317 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -24,3 +24,3 @@
-   The platforms that had received specific testing at the
-   time of release are described in <xref linkend="supported-platforms"/>
-   below.
+   The <xref linkend="supported-platforms"/> that had received specific testing
+   at the
+   time of release are described below.
@@ -171 +171,4 @@
-      The ICU library is used by default. If you don't want to use it then you must specify the <option>--without-icu</option> option to <filename>configure</filename>. Using this option disables support for ICU collation features (see <xref linkend="collation"/>).
+      The ICU library is used by default. If you don't want to use it then you
+      must specify the <option>--without-icu</option> option to
+      <filename>configure</filename>. Using this option disables ICU
+      <xref linkend="collation"/>.
@@ -466,2 +469 @@ su - postgres
-    has a large number of options, which are described in
-    <xref linkend="configure-options"/>.
+    accepts a large number of options; see <xref linkend="configure-options"/>.
@@ -471,3 +473,2 @@ su - postgres
-    Also, <filename>configure</filename> responds to certain environment
-    variables, as described in <xref linkend="configure-envvars"/>.
-    These provide additional ways to customize the configuration.
+    Also, <xref linkend="configure-envvars"/> provide additional ways to
+    customize the configuration.
@@ -551,3 +552 @@ build-postgresql:
-     <xref linkend="upgrading"/>,
-     which has instructions about upgrading a
-     cluster.
+     <xref linkend="upgrading"/>.
@@ -951 +950 @@ build-postgresql:
-         <acronym>JIT</acronym> compilation (see <xref linkend="jit"/>).  This
+         <xref linkend="jit"/>.  This
@@ -1273,2 +1272 @@ build-postgresql:
-         library, disabling the use of ICU collation features (see <xref
-         linkend="collation"/>).
+         library, disabling ICU <xref linkend="collation"/>.
@@ -1601,3 +1599,2 @@ build-postgresql:
-         Enable tests using the Perl TAP tools.  This requires a Perl
-         installation and the Perl module <literal>IPC::Run</literal>.
-         See <xref linkend="regress-tap"/> for more information.
+         Enable <xref linkend="regress-tap"/> (requires a Perl
+         installation and the Perl module <literal>IPC::Run</literal>).
@@ -1627 +1624 @@ build-postgresql:
-         code coverage testing instrumentation.  When run, they
+         <xref linkend="regress-coverage"/> instrumentation.  When run, they
@@ -1630,2 +1627 @@ build-postgresql:
-         See <xref linkend="regress-coverage"/>
-         for more information. This option is for use only with GCC
+         This option is for use only with GCC
@@ -1658,2 +1654 @@ build-postgresql:
-         dynamic tracing tool DTrace.
-         See <xref linkend="dynamic-trace"/> for more information.
+         <xref linkend="dynamic-trace"/> tool DTrace.
@@ -1689 +1684,2 @@ build-postgresql:
-         injection points in the server. Injection points allow to run
+         <xref linkend="xfunc-addin-injection-points"/> in the server. Injection
+         points allow to run
@@ -1692,3 +1688,2 @@ build-postgresql:
-         in a controlled fashion. This option is disabled by default.  See
-         <xref linkend="xfunc-addin-injection-points"/> for more details.  This
-         option is intended to be used only by developers for testing.
+         in a controlled fashion. This option is disabled by default.
+         This option is intended to be used only by developers for testing.
@@ -2153,3 +2148 @@ ninja
-     <xref linkend="upgrading"/>,
-     which has instructions about upgrading a
-     cluster.
+     <xref linkend="upgrading"/>.
@@ -2436,2 +2429,2 @@ ninja install
-        library, enabling use of ICU collation features (see <xref
-        linkend="collation"/>).  Defaults to auto and requires the
+        library, enabling ICU <xref linkend="collation"/>.  Defaults to auto and
+        requires the
@@ -2449 +2442 @@ ninja install
-        <acronym>JIT</acronym> compilation (see <xref linkend="jit"/>).
+        <xref linkend="jit"/>.
@@ -3171 +3164 @@ ninja install
-        Enable tests using the Perl TAP tools.  Defaults to auto and requires
+        Enable <xref linkend="regress-tap"/>.  Defaults to auto and requires
@@ -3173 +3165,0 @@ ninja install
-        See <xref linkend="regress-tap"/> for more information.
@@ -3182 +3174,2 @@ ninja install
-        Enable additional test suites, which are not run by default because
+        Enable <xref linkend="regress-additional"/>, which are not run by
+        default because
@@ -3185,2 +3178 @@ ninja install
-        whitespace-separated list of tests to enable. See
-        <xref linkend="regress-additional"/> for details. If the
+        whitespace-separated list of tests to enable. If the
@@ -3198 +3190 @@ ninja install
-        code coverage testing instrumentation.  When run, they
+        <xref linkend="regress-coverage"/> instrumentation.  When run, they
@@ -3201,2 +3193 @@ ninja install
-        See <xref linkend="regress-coverage"/>
-        for more information. This option is for use only with GCC
+        This option is for use only with GCC
@@ -3216,2 +3207 @@ ninja install
-        dynamic tracing tool DTrace.
-        See <xref linkend="dynamic-trace"/> for more information.
+        <xref linkend="dynamic-trace"/> tool DTrace.
@@ -3235 +3225,2 @@ ninja install
-        injection points in the server. Injection points allow to run
+        <xref linkend="xfunc-addin-injection-points"/> in the server. Injection
+        points allow to run
@@ -3238,3 +3229,2 @@ ninja install
-        in a controlled fashion. This option is disabled by default.  See
-        <xref linkend="xfunc-addin-injection-points"/> for more details.  This
-        option is intended to be used only by developers for testing.
+        in a controlled fashion. This option is disabled by default.
+        This option is intended to be used only by developers for testing.
@@ -3816,2 +3806,2 @@ configure ... LDFLAGS="-R /usr/sfw/lib:/opt/sfw/lib:/usr/local/lib"
-    PostgreSQL for Windows with Visual Studio can be built using Meson, as
-    described in <xref linkend="install-meson"/>.
+    PostgreSQL for Windows with Visual Studio can be built following
+    <xref linkend="install-meson"/>.
diff --git a/doc/src/sgml/json.sgml b/doc/src/sgml/json.sgml
index 8a2aad5935e..fd6d39146cf 100644
--- a/doc/src/sgml/json.sgml
+++ b/doc/src/sgml/json.sgml
@@ -20,2 +20,2 @@
-  assorted JSON-specific functions and operators available for data stored
-  in these data types; see <xref linkend="functions-json"/>.
+  assorted <xref linkend="functions-json"/> available for data stored
+  in these data types.
@@ -28,2 +28 @@
-  also provides the <type>jsonpath</type> data type described in
-  <xref linkend="datatype-jsonpath"/>.
+  also provides the <xref linkend="datatype-jsonpath"/>.
@@ -92,2 +91 @@
-   Many of the JSON processing functions described
-   in <xref linkend="functions-json"/> will convert Unicode escapes to
+   Many of the <xref linkend="functions-json"/> will convert Unicode escapes to
@@ -232,2 +230,2 @@ SELECT '{"reading": 1.230e-5}'::json, '{"reading": 1.230e-5}'::jsonb;
-    For the list of built-in functions and operators available for
-    constructing and processing JSON values, see <xref linkend="functions-json"/>.
+    <xref linkend="functions-json"/> lists the built-in functions and operators
+    for constructing and processing JSON values.
@@ -396,3 +394,3 @@ SELECT doc-&gt;'site_name' FROM websites
-    The various containment and existence operators, along with all other
-    JSON operators and functions are documented
-    in <xref linkend="functions-json"/>.
+    <xref linkend="functions-json"/> covers the various containment and
+    existence
+    operators, along with all other JSON operators and functions.
@@ -484,2 +482 @@ CREATE INDEX idxgintags ON api USING GIN ((jdoc -&gt; 'tags'));
-    (More information on expression indexes can be found in <xref
-    linkend="indexes-expressional"/>.)
+    (See <xref linkend="indexes-expressional"/> for more information.)
@@ -845,2 +842 @@ UPDATE table_name SET jsonb_field[1]['a'] = '1';
-      <type>jsonpath</type> operators and methods listed
-      in <xref linkend="functions-sqljson-path-operators"/>.
+      <xref linkend="functions-sqljson-path-operators"/>
@@ -885,2 +881,2 @@ UPDATE table_name SET jsonb_field[1]['a'] = '1';
-        <parameter>vars</parameter> of several JSON processing functions
-        (see <xref linkend="functions-json-processing-table"/>), or by
+        <parameter>vars</parameter> of
+        <xref linkend="functions-json-processing-table"/>, or by
diff --git a/doc/src/sgml/keywords.sgml b/doc/src/sgml/keywords.sgml
index a7bf30c5046..e67ac027c85 100644
--- a/doc/src/sgml/keywords.sgml
+++ b/doc/src/sgml/keywords.sgml
@@ -68,2 +68,3 @@
-  column labels without writing <literal>AS</literal> before them (as
-  described in <xref linkend="queries-column-labels"/>), there are a few
+  <xref linkend="queries-column-labels"/> without writing <literal>AS</literal>
+  before them,
+  there are a few
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 7d3c3bb66d8..fef61cdf359 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -36 +36 @@
-  Some short programs are included at the end of this chapter (<xref linkend="libpq-example"/>) to show how
+  <xref linkend="libpq-example"/> at the end of this chapter show how
@@ -121,2 +121 @@ PGconn *PQconnectdbParams(const char * const *keywords,
-       The currently recognized parameter key words are listed in
-       <xref linkend="libpq-paramkeywords"/>.
+       See <xref linkend="libpq-paramkeywords"/> for recognized parameters.
@@ -144,2 +143,2 @@ PGconn *PQconnectdbParams(const char * const *keywords,
-       URI scheme designator.  (More details on connection string formats
-       appear in <xref linkend="libpq-connstring"/>.)  Only the first
+       URI scheme designator.  (See <xref linkend="libpq-connstring"/> for
+       details on formats.)  Only the first
@@ -169,2 +168,2 @@ PGconn *PQconnectdbParams(const char * const *keywords,
-       default values.  If an unset parameter's corresponding environment
-       variable (see <xref linkend="libpq-envars"/>) is set, its value is
+       default values.  If an unset parameter's corresponding
+       <xref linkend="libpq-envars"/> is set, its value is
@@ -980,2 +979 @@ host=localhost port=5432 dbname=mydb connect_timeout=10
-    The recognized parameter key words are listed in <xref
-    linkend="libpq-paramkeywords"/>.
+    See <xref linkend="libpq-paramkeywords"/> for recognized parameters.
@@ -1028,2 +1026,3 @@ postgresql:///mydb?host=localhost&amp;port=5433
-    All named parameters must match key words listed in
-    <xref linkend="libpq-paramkeywords"/>, except that for compatibility
+    All named parameters must match <xref linkend="libpq-paramkeywords"/>,
+    except that
+    for compatibility
@@ -1216,2 +1215 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
-        is used to identify the connection in a password file (see
-        <xref linkend="libpq-pgpass"/>).
+        is used to identify the connection in <xref linkend="libpq-pgpass"/>.
@@ -1290,2 +1288 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
-       Specifies the name of the file used to store passwords
-       (see <xref linkend="libpq-pgpass"/>).
+       Specifies the name of <xref linkend="libpq-pgpass"/>.
@@ -2149,2 +2146 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
-        <literal>peer</literal> authentication method is implemented; see
-        <xref linkend="auth-peer"/>.
+        <xref linkend="auth-peer"/> method is implemented.
@@ -2258 +2254 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
-        Kerberos service name to use when authenticating with GSSAPI.
+        Kerberos service name to use for <xref linkend="gssapi-auth"/>.
@@ -2260,2 +2256 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
-        configuration for Kerberos authentication to succeed. (See also
-        <xref linkend="gssapi-auth"/>.)
+        configuration for Kerberos authentication to succeed.
@@ -2344,2 +2339 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
-        This option specifies the name of the per-user connection service file
-        (see <xref linkend="libpq-pgservice"/>).
+        This option specifies the name of <xref linkend="libpq-pgservice"/>.
@@ -4025,3 +4019,2 @@ ExecStatusType PQresultStatus(const PGresult *res);
-        query execution functions; results of this kind are instead passed
-        to the notice processor (see <xref
-        linkend="libpq-notice-processing"/>).
+        query execution functions; results of this kind are instead passed to
+        <xref linkend="libpq-notice-processing"/>.
@@ -5629,3 +5622 @@ PGresult *PQgetResult(PGconn *conn);
-   is retrieving large query results a limited number of rows at a time.
-   This is discussed
-   in <xref linkend="libpq-single-row-mode"/>.
+   is <xref linkend="libpq-single-row-mode"/>.
@@ -5720,2 +5711 @@ int PQisBusy(PGconn *conn);
-   can also attempt to cancel a command that is still being processed
-   by the server; see <xref linkend="libpq-cancel"/>.  But regardless of
+   can also attempt <xref linkend="libpq-cancel"/>.  But regardless of
@@ -5991 +5981,2 @@ int PQflush(PGconn *conn);
-     queries in the pipeline; see <xref linkend="libpq-pipeline-interleave"/>.
+     queries in the pipeline. See <xref linkend="libpq-pipeline-interleave"/>
+     for more information.
@@ -6412 +6403,2 @@ UPDATE mytable SET x = x + 1 WHERE id = 42;
-   When using pipeline mode, single-row or chunked mode needs to be
+   When using <xref linkend="libpq-pipeline-mode"/>, single-row or chunked mode
+   needs to be
@@ -6415 +6406,0 @@ UPDATE mytable SET x = x + 1 WHERE id = 42;
-   See <xref linkend="libpq-pipeline-mode"/> for more information.
@@ -9140,2 +9131,2 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough)
-      <application>ps</application>; instead consider using a password file
-      (see <xref linkend="libpq-pgpass"/>).
+      <application>ps</application>; instead consider using
+      <xref linkend="libpq-pgpass"/>.
@@ -9692,3 +9683,2 @@ user=admin
-   LDAP connection parameter lookup uses the connection service file
-   <filename>pg_service.conf</filename> (see <xref
-   linkend="libpq-pgservice"/>).  A line in a
+   LDAP connection parameter lookup uses <xref linkend="libpq-pgservice"/>
+   (<filename>pg_service.conf</filename>).  A line in a
@@ -9766,5 +9756,5 @@ ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=*)
-   <productname>PostgreSQL</productname> has native support for using <acronym>SSL</acronym>
-   connections to encrypt client/server communications using
-   <acronym>TLS</acronym> protocols for increased security.
-   See <xref linkend="ssl-tcp"/> for details about the server-side
-   <acronym>SSL</acronym> functionality.
+   <productname>PostgreSQL</productname> has native support for
+   <xref linkend="ssl-tcp"/>
+   using <acronym>TLS</acronym> protocols to encrypt client/server
+   communications
+   for increased security.
@@ -9954,2 +9944 @@ ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=*)
-   For instructions on creating certificates, see <xref
-   linkend="ssl-certificate-creation"/>.
+   See <xref linkend="ssl-certificate-creation"/> for instructions.
diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml
index 9e7868487de..145e7407e2a 100644
--- a/doc/src/sgml/logical-replication.sgml
+++ b/doc/src/sgml/logical-replication.sgml
@@ -132,2 +132,3 @@
-   data synchronization copy. (Row filters have no effect for
-   <command>TRUNCATE</command>. See <xref linkend="logical-replication-row-filter"/>).
+   data synchronization copy. (<xref linkend="logical-replication-row-filter"/>
+   have no effect for
+   <command>TRUNCATE</command>.)
@@ -234,2 +235,3 @@
-   activity and preserve necessary WAL (see <xref
-   linkend="streaming-replication-slots"/>).  Additional replication
+   activity and preserve necessary WAL. See <xref
+   linkend="streaming-replication-slots"/> for more information.  Additional
+   replication
@@ -242,2 +244,2 @@
-   A logical replication subscription can be a standby for synchronous
-   replication (see <xref linkend="synchronous-replication"/>).  The standby
+   A logical replication subscription can be a standby for
+   <xref linkend="synchronous-replication"/>.  The standby
@@ -555,3 +557,3 @@
-    These examples specify the standard logical decoding output plugin
-    (<xref linkend="logicaldecoding-pgoutput"/>),
-    which is what the built-in logical replication uses.
+    These examples specify <xref linkend="logicaldecoding-pgoutput"/>,
+    the standard logical decoding output plugin used by the built-in logical
+    replication.
@@ -703,3 +705,4 @@ HINT:  To initiate replication, you must manually create the replication slot, e
-   corresponding to the subscriptions can be synchronized to the standby server by
-   specifying <literal>failover = true</literal> when creating subscriptions. See
-   <xref linkend="logicaldecoding-replication-slots-synchronization"/> for details.
+   corresponding to the subscriptions can be synchronized via
+   <xref linkend="logicaldecoding-replication-slots-synchronization"/> to the
+   standby server by
+   specifying <literal>failover = true</literal> when creating subscriptions.
@@ -1414 +1417,2 @@ Included in publications:
-   generated columns to be published, regardless of the publication parameter
+   <xref linkend="logical-replication-gencols"/> to be published, regardless of
+   the publication parameter
@@ -1416,2 +1420 @@ Included in publications:
-   <literal>publish_generated_columns</literal></link>. See
-   <xref linkend="logical-replication-gencols"/> for details.
+   <literal>publish_generated_columns</literal></link>.
@@ -1737,2 +1740,2 @@ Included in publications:
-    publications where the same table has been published with different column
-    lists. See <xref linkend="logical-replication-col-lists"/>.
+    publications where the same table has been published with different
+    <xref linkend="logical-replication-col-lists"/>.
@@ -2376 +2379 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-     Large objects (see <xref linkend="largeobjects"/>) are not replicated.
+     <xref linkend="largeobjects"/> are not replicated.
@@ -2426 +2429 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-   streaming replication (see <xref linkend="streaming-replication"/>).  It is
+   <xref linkend="streaming-replication"/>.  It is
@@ -2428,2 +2431,2 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-   processes.  The walsender process starts logical decoding (described
-   in <xref linkend="logicaldecoding"/>) of the WAL and loads the standard
+   processes.  The walsender process starts <xref linkend="logicaldecoding"/> of
+   the WAL and loads the standard
@@ -2432,2 +2435,2 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-   from WAL to the logical replication protocol
-   (see <xref linkend="protocol-logical-replication"/>) and filters the data
+   from WAL to <xref linkend="protocol-logical-replication"/> and filters the
+   data
@@ -2504,3 +2507,3 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-   the monitoring on a publication node is similar to monitoring of a
-   physical replication primary
-   (see <xref linkend="streaming-replication-monitoring"/>).
+   the monitoring on a publication node is similar to
+   <xref linkend="streaming-replication-monitoring"/> of a physical replication
+   primary.
@@ -2891,3 +2894,3 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-     The logical replication restrictions apply to logical replication cluster
-     upgrades also. See <xref linkend="logical-replication-restrictions"/> for
-     details.
+     The <xref linkend="logical-replication-restrictions"/> apply to logical
+     replication cluster
+     upgrades also.
@@ -2896,3 +2899,3 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-     The prerequisites of publisher upgrade apply to logical replication
-     cluster upgrades also. See <xref linkend="prepare-publisher-upgrades"/>
-     for details.
+     The prerequisites of <xref linkend="prepare-publisher-upgrades"/> also
+     apply to logical replication cluster
+     upgrades.
@@ -2901,3 +2904,3 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-     The prerequisites of subscriber upgrade apply to logical replication
-     cluster upgrades also. See <xref linkend="prepare-subscriber-upgrades"/>
-     for details.
+     The prerequisites of <xref linkend="prepare-subscriber-upgrades"/> also
+     apply to logical replication cluster
+     upgrades.
@@ -2922,3 +2925 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-       Follow the steps specified in
-       <xref linkend="steps-two-node-logical-replication-cluster"/> to upgrade
-       a two-node logical replication cluster.
+       Follow <xref linkend="steps-two-node-logical-replication-cluster"/>.
@@ -2929,3 +2930 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-       Follow the steps specified in
-       <xref linkend="steps-cascaded-logical-replication-cluster"/> to upgrade
-       a cascaded logical replication cluster.
+       Follow <xref linkend="steps-cascaded-logical-replication-cluster"/>.
@@ -2936,3 +2935,2 @@ CONTEXT:  processing remote data for replication origin "pg_16395" during "INSER
-       Follow the steps specified in
-       <xref linkend="steps-two-node-circular-logical-replication-cluster"/>
-       to upgrade a two-node circular logical replication cluster.
+       Follow
+       <xref linkend="steps-two-node-circular-logical-replication-cluster"/>.
diff --git a/doc/src/sgml/logicaldecoding.sgml b/doc/src/sgml/logicaldecoding.sgml
index 6dc49108997..7246f7b8d3c 100644
--- a/doc/src/sgml/logicaldecoding.sgml
+++ b/doc/src/sgml/logicaldecoding.sgml
@@ -31,3 +31,3 @@
-   Changes can be consumed either using the streaming replication protocol
-   (see <xref linkend="protocol-replication"/> and
-   <xref linkend="logicaldecoding-walsender"/>), or by calling functions
+   Changes can be consumed either using <xref linkend="protocol-replication"/>
+   (see also <xref linkend="logicaldecoding-walsender"/>), or by calling
+   functions
@@ -150 +150,2 @@ postgres=# SELECT pg_drop_replication_slot('regression_slot');
-    distribution.  This requires that client authentication is set up to allow
+    distribution.  This requires that
+    <xref linkend="streaming-replication-authentication"/> is set up to allow
@@ -152,2 +153,2 @@ postgres=# SELECT pg_drop_replication_slot('regression_slot');
-    (see <xref linkend="streaming-replication-authentication"/>) and
-    that <varname>max_wal_senders</varname> is set sufficiently high to allow
+    and that <varname>max_wal_senders</varname> is set sufficiently high to
+    allow
@@ -319,2 +320,3 @@ postgres=# SELECT * from pg_logical_slot_get_changes('regression_slot', NULL, NU
-     <para><productname>PostgreSQL</productname> can also use streaming replication slots
-     to maintain a standby server (see <xref linkend="streaming-replication"/>), but
+     <para><productname>PostgreSQL</productname> can also use
+<xref linkend="streaming-replication"/> slots
+     to maintain a standby server, but
@@ -398 +400,2 @@ postgres=# SELECT * from pg_logical_slot_get_changes('regression_slot', NULL, NU
-      transaction ID wraparound (see <xref linkend="vacuum-for-wraparound"/>).
+      transaction ID wraparound. See <xref linkend="vacuum-for-wraparound"/> for
+      more information.
@@ -590 +593 @@ DETAIL:  Synchronization could lead to data loss, because the remote slot needs
-    Synchronous replication (see <xref linkend="synchronous-replication"/>) is
+    <xref linkend="synchronous-replication"/> is
@@ -621 +624 @@ DETAIL:  Synchronization could lead to data loss, because the remote slot needs
-    (see <xref linkend="logicaldecoding-output-plugin-writing"/> for details).
+    see <xref linkend="logicaldecoding-output-plugin-writing"/>.
@@ -1433,2 +1436,2 @@ OutputPluginWrite(ctx, true);
-    prepare writing output, and one to write the output
-    (see <xref linkend="logicaldecoding-output-plugin-output"/>).
+    prepare writing output, and one for
+    <xref linkend="logicaldecoding-output-plugin-output"/>.
@@ -1448,2 +1451,2 @@ OutputPluginWrite(ctx, true);
-     replication</link>.  To do this, the streaming replication interface
-     (see <xref linkend="logicaldecoding-walsender"/>) must be used to stream out
+     replication</link>.  To do this,
+     <xref linkend="logicaldecoding-walsender"/> must be used to stream out
@@ -1553,3 +1556,3 @@ OutputPluginWrite(ctx, true);
-    Also, if streaming of two-phase commands is to be supported, then additional
-    callbacks must be provided. (See <xref linkend="logicaldecoding-two-phase-commits"/>
-    for details).
+    Also, if <xref linkend="logicaldecoding-two-phase-commits"/> is to be
+    supported, then additional
+    callbacks must be provided.
diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml
index e341f165efd..9caf219ea8f 100644
--- a/doc/src/sgml/maintenance.sgml
+++ b/doc/src/sgml/maintenance.sgml
@@ -29,3 +29,2 @@
-   table, etc.).  The backup and recovery mechanisms available in
-   <productname>PostgreSQL</productname> are discussed at length in
-   <xref linkend="backup"/>.
+   table, etc.).  <xref linkend="backup"/> in
+   <productname>PostgreSQL</productname> is discussed at length in that chapter.
@@ -43,2 +42,2 @@
-   Another task that might need periodic attention is log file management.
-   This is discussed in <xref linkend="logfile-maintenance"/>.
+   Another task that might need periodic attention is
+   <xref linkend="logfile-maintenance"/>.
@@ -1024,2 +1023,2 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
-    (and many other autovacuum control parameters) on a per-table basis; see
-    <xref linkend="sql-createtable-storage-parameters"/> for more information.
+    (and many other autovacuum control parameters) via
+    <xref linkend="sql-createtable-storage-parameters"/>.
@@ -1033,2 +1032,2 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
-    When multiple workers are running, the autovacuum cost delay parameters
-    (see <xref linkend="runtime-config-resource-vacuum-cost"/>) are
+    When multiple workers are running, the autovacuum
+    <xref linkend="runtime-config-resource-vacuum-cost"/> parameters are
diff --git a/doc/src/sgml/manage-ag.sgml b/doc/src/sgml/manage-ag.sgml
index fe4cb4410cd..c4721cdfea3 100644
--- a/doc/src/sgml/manage-ag.sgml
+++ b/doc/src/sgml/manage-ag.sgml
@@ -48 +48 @@
-   The older dblink module (see <xref linkend="dblink"/>) provides a similar capability.
+   The older <xref linkend="dblink"/> provides a similar capability.
@@ -59 +59,2 @@
-   into separate schemas;  this provides a modular structure with namespace
+   into separate <xref linkend="ddl-schemas"/>;  this provides a modular
+   structure with namespace
@@ -61 +61,0 @@
-   More information about managing schemas is in <xref linkend="ddl-schemas"/>.
@@ -67,2 +67,3 @@
-   In particular, the impact that having a shared WAL (see <xref linkend="wal"/>)
-   has on backup and recovery options. While individual databases in the cluster
+   In particular, the impact that having a shared WAL has on backup and recovery
+   options (see <xref linkend="wal"/>). While individual databases in the
+   cluster
@@ -74,4 +75,3 @@
-   Databases are created with the <command>CREATE DATABASE</command> command
-   (see <xref linkend="manage-ag-createdb"/>) and destroyed with the
-   <command>DROP DATABASE</command> command
-   (see <xref linkend="manage-ag-dropdb"/>).
+   Databases are created with <xref linkend="manage-ag-createdb"/> and destroyed
+   with
+   <xref linkend="manage-ag-dropdb"/>.
@@ -139 +139 @@ CREATE DATABASE <replaceable>name</replaceable>;
-   Two additional databases,
+   Two <xref linkend="manage-ag-templatedbs"/>,
@@ -153,2 +153 @@ CREATE DATABASE <replaceable>name</replaceable>;
-   without any such site-local additions.  More details
-   appear in <xref linkend="manage-ag-templatedbs"/>.
+   without any such site-local additions.
diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml
index 08d5b824552..d49d11091b3 100644
--- a/doc/src/sgml/monitoring.sgml
+++ b/doc/src/sgml/monitoring.sgml
@@ -31,2 +31,2 @@
-   <xref linkend="using-explain"/> discusses <command>EXPLAIN</command>
-   and other methods for understanding the behavior of an individual
+   <xref linkend="using-explain"/> discusses this and other methods for
+   understanding the behavior of an individual
@@ -163 +163 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
-   details about setting configuration parameters.)
+   details.)
@@ -230,2 +230,2 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
-   build custom views using the underlying cumulative statistics functions, as
-   discussed in <xref linkend="monitoring-stats-functions"/>.
+   build custom views using the underlying cumulative
+   <xref linkend="monitoring-stats-functions"/>.
@@ -387,2 +387,2 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
-       <command>ANALYZE</command>, showing current progress.
-       See <xref linkend="analyze-progress-reporting"/>.
+       <command>ANALYZE</command>, showing current progress, as reported in
+       <xref linkend="analyze-progress-reporting"/>.
@@ -395,2 +395,2 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
-      current progress.
-      See <xref linkend="create-index-progress-reporting"/>.
+      current progress, as reported in
+      <xref linkend="create-index-progress-reporting"/>.
@@ -403,2 +403,2 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
-       <command>VACUUM</command>, showing current progress.
-       See <xref linkend="vacuum-progress-reporting"/>.
+       <command>VACUUM</command>, showing current progress, as reported in
+       <xref linkend="vacuum-progress-reporting"/>.
@@ -411,2 +411,3 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
-       <command>CLUSTER</command> or <command>VACUUM FULL</command>, showing current progress.
-       See <xref linkend="cluster-progress-reporting"/>.
+       <command>CLUSTER</command> or <command>VACUUM FULL</command>,
+       showing current progress, as reported in
+       <xref linkend="cluster-progress-reporting"/>.
@@ -427,2 +428,2 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
-       showing current progress.
-       See <xref linkend="basebackup-progress-reporting"/>.
+       showing current progress, as reported in
+       <xref linkend="basebackup-progress-reporting"/>.
@@ -1115,2 +1116,2 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
-       outcome defined in a test.  See
-       <xref linkend="xfunc-addin-injection-points"/> for more details.  This
+       outcome defined in a test (see
+       <xref linkend="xfunc-addin-injection-points"/>).  This
@@ -4848,3 +4849,3 @@ description | Waiting for a newly initialized WAL file to reach durable storage
-    This can happen with queries that use certain <acronym>SQL</acronym>
-    constructs to search for rows matching any value out of a list or array of
-    multiple scalar values (see <xref linkend="functions-comparisons"/>).  It
+    This can happen with queries that use
+    <xref linkend="functions-comparisons"/> to search for rows matching any
+    value out of a list or array of scalar values.  It
@@ -4865,4 +4866,2 @@ description | Waiting for a newly initialized WAL file to reach durable storage
-    <command>EXPLAIN ANALYZE</command> outputs the total number of index
-    searches performed by each index scan node.  See
-    <xref linkend="using-explain-analyze"/> for an example demonstrating how
-    this works.
+    <xref linkend="using-explain-analyze"/> outputs the total number of index
+    searches performed by each index scan node.
@@ -6107 +6106 @@ FROM pg_stat_get_backend_idset() AS backendid;
-   Details of the <structname>pg_locks</structname> view appear in
+   Details of this view appear in
@@ -6109,2 +6108 @@ FROM pg_stat_get_backend_idset() AS backendid;
-   For more information on locking and managing concurrency with
-   <productname>PostgreSQL</productname>, refer to <xref linkend="mvcc"/>.
+   For more information, refer to <xref linkend="mvcc"/>.
@@ -6277,2 +6275,2 @@ FROM pg_stat_get_backend_idset() AS backendid;
-       Total time spent sleeping due to cost-based delay (see
-       <xref linkend="runtime-config-resource-vacuum-cost"/>), in milliseconds
+       Total time spent sleeping due to
+       <xref linkend="runtime-config-resource-vacuum-cost"/>, in milliseconds
@@ -8826 +8824,2 @@ if (TRACE_POSTGRESQL_TRANSACTION_START_ENABLED())
-    there also might be a <acronym>TOAST</acronym> file associated with the table,
+    there also might be a <xref linkend="storage-toast"/> file
+    associated with the table,
@@ -8828 +8827 @@ if (TRACE_POSTGRESQL_TRANSACTION_START_ENABLED())
-    table (see <xref linkend="storage-toast"/>).  There will be one valid index
+    table.  There will be one valid index
@@ -8931,2 +8930 @@ ORDER BY relpages DESC;
-    systems by making use of tablespaces. See <xref
-    linkend="manage-ag-tablespaces"/> for more information about that.
+    systems by making use of <xref linkend="manage-ag-tablespaces"/>.
diff --git a/doc/src/sgml/mvcc.sgml b/doc/src/sgml/mvcc.sgml
index 241caeb3593..94417be21e2 100644
--- a/doc/src/sgml/mvcc.sgml
+++ b/doc/src/sgml/mvcc.sgml
@@ -297,2 +297,4 @@
-       made to a sequence (and therefore the counter of a
-       column declared using <type>serial</type>) are immediately visible
+       made using <xref linkend="functions-sequence"/> (and therefore the
+       counter of a
+       column declared using <xref linkend="datatype-serial"/>) are immediately
+       visible
@@ -300,2 +302 @@
-       that made the changes aborts.  See <xref linkend="functions-sequence"/>
-       and <xref linkend="datatype-serial"/>.
+       that made the changes aborts.
@@ -887,2 +888 @@ ERROR:  could not serialize access due to read/write dependencies among transact
-    system view. For more information on monitoring the status of the lock
-    manager subsystem, refer to <xref linkend="monitoring"/>.
+    system view. For more information, refer to <xref linkend="monitoring"/>.
@@ -1621,2 +1621 @@ SELECT pg_advisory_lock(q.id) FROM
-     The functions provided to manipulate advisory locks are described in
-     <xref linkend="functions-advisory-locks"/>.
+     See <xref linkend="functions-advisory-locks"/>.
@@ -1658 +1657 @@ SELECT pg_advisory_lock(q.id) FROM
-    As mentioned in <xref linkend="xact-serializable"/>, Serializable
+    As described in <xref linkend="xact-serializable"/>, these
@@ -1698 +1697 @@ SELECT pg_advisory_lock(q.id) FROM
-      does not yet extend to hot standby mode (<xref linkend="hot-standby"/>)
+      does not yet extend to <xref linkend="hot-standby"/>
@@ -1867,2 +1866,2 @@ SELECT pg_advisory_lock(q.id) FROM
-    been added to hot standby replication targets (described in
-    <xref linkend="hot-standby"/>).  The strictest isolation level currently
+    been added to <xref linkend="hot-standby"/> replication targets.  The
+    strictest isolation level currently
diff --git a/doc/src/sgml/oauth-validators.sgml b/doc/src/sgml/oauth-validators.sgml
index d69b6cf98ad..381e066fbfd 100644
--- a/doc/src/sgml/oauth-validators.sgml
+++ b/doc/src/sgml/oauth-validators.sgml
@@ -17,3 +17,3 @@
-  OAuth validator modules must at least consist of an initialization function
-  (see <xref linkend="oauth-validator-init"/>) and the required callback for
-  performing validation (see <xref linkend="oauth-validator-callback-validate"/>).
+  OAuth validator modules must at least consist of
+  <xref linkend="oauth-validator-init"/>
+  and <xref linkend="oauth-validator-callback-validate"/>.
@@ -158,3 +158,2 @@
-       Note that anonymous/pseudonymous login is possible as well, by enabling
-       usermap delegation; see
-       <xref linkend="oauth-validator-design-usermap-delegation"/>.
+       Note that anonymous/pseudonymous login is possible as well;
+       see <xref linkend="oauth-validator-design-usermap-delegation"/>.
diff --git a/doc/src/sgml/oid2name.sgml b/doc/src/sgml/oid2name.sgml
index 9340d7376aa..6c43caa8c31 100644
--- a/doc/src/sgml/oid2name.sgml
+++ b/doc/src/sgml/oid2name.sgml
@@ -223,2 +223,2 @@
-   utilities, also uses the environment variables supported by
-   <application>libpq</application> (see <xref linkend="libpq-envars"/>).
+   utilities, also uses the <xref linkend="libpq-envars"/> supported by
+   <application>libpq</application>.
diff --git a/doc/src/sgml/pageinspect.sgml b/doc/src/sgml/pageinspect.sgml
index 3a113439e1d..2ede38b8ed5 100644
--- a/doc/src/sgml/pageinspect.sgml
+++ b/doc/src/sgml/pageinspect.sgml
@@ -475,3 +475,3 @@ test=# SELECT itemoffset, ctid, itemlen, nulls, vars, data, dead, htid, tids[0:2
-      For more details about the structure of B-tree indexes, see
-      <xref linkend="btree-structure"/>.  For more details about
-      deduplication and posting lists, see <xref
+      For more details, see
+      <xref linkend="btree-structure"/>.  For deduplication and posting lists,
+      see <xref
diff --git a/doc/src/sgml/parallel.sgml b/doc/src/sgml/parallel.sgml
index af43484703e..214cfdb9f9b 100644
--- a/doc/src/sgml/parallel.sgml
+++ b/doc/src/sgml/parallel.sgml
@@ -187 +187 @@ EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%';
-        UNSAFE</literal> by default. See the discussion of
+        UNSAFE</literal> by default. See
@@ -463 +463 @@ EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%';
-    unable to generate a parallel plan for your query.  See
+    unable to generate a parallel plan for your query, as discussed in
@@ -465,2 +465 @@ EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%';
-    <xref linkend="parallel-safety"/> for information on why this may be
-    the case.
+    <xref linkend="parallel-safety"/>.
diff --git a/doc/src/sgml/passwordcheck.sgml b/doc/src/sgml/passwordcheck.sgml
index 7ea32410463..fb7a70cfaf8 100644
--- a/doc/src/sgml/passwordcheck.sgml
+++ b/doc/src/sgml/passwordcheck.sgml
@@ -51,3 +51,3 @@
-   It is more secure to use an external authentication method such as GSSAPI
-   (see <xref linkend="client-authentication"/>) than to rely on
-   passwords within the database.
+   It is more secure to use an external <xref linkend="client-authentication"/>
+   method such as GSSAPI
+   than to rely on passwords within the database.
diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml
index 604e8578a8d..509330e522c 100644
--- a/doc/src/sgml/perform.sgml
+++ b/doc/src/sgml/perform.sgml
@@ -134,2 +134,2 @@ EXPLAIN SELECT * FROM tenk1;
-    The costs are measured in arbitrary units determined by the planner's
-    cost parameters (see <xref linkend="runtime-config-query-constants"/>).
+    The costs are measured in arbitrary units determined by
+    <xref linkend="runtime-config-query-constants"/>.
@@ -937 +937 @@ EXPLAIN ANALYZE SELECT four, unique1 FROM tenk1 WHERE four BETWEEN 1 AND 3 AND u
-    <structname>tenk1_four_unique1_idx</structname>, a multi-column index on the
+    <structname>tenk1_four_unique1_idx</structname>, a composite index on the
@@ -1422 +1422 @@ WHERE tablename = 'road';
-   Further details about the planner's use of statistics can be found in
+   Further details can be found in
@@ -2144 +2144 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
-    statistics.  Note that if the autovacuum daemon is enabled, it might
+    statistics.  Note that if <xref linkend="autovacuum"/> is enabled, it might
@@ -2146,2 +2146 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
-    <xref linkend="vacuum-for-statistics"/>
-    and <xref linkend="autovacuum"/> for more information.
+    <xref linkend="vacuum-for-statistics"/> for more information.
@@ -2249 +2248 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
-    and <xref linkend="autovacuum"/> for more information.
+    and <xref linkend="autovacuum"/>.
diff --git a/doc/src/sgml/pgstatstatements.sgml b/doc/src/sgml/pgstatstatements.sgml
index d753de5836e..d1442fe03d8 100644
--- a/doc/src/sgml/pgstatstatements.sgml
+++ b/doc/src/sgml/pgstatstatements.sgml
@@ -644,2 +644 @@
-   The <structname>pg_stat_statements_info</structname> view, discussed below
-   in <xref linkend="pgstatstatements-pg-stat-statements-info"/>,
+   <xref linkend="pgstatstatements-pg-stat-statements-info"/>, discussed below,
diff --git a/doc/src/sgml/planstats.sgml b/doc/src/sgml/planstats.sgml
index e57867ba617..7e679f3a200 100644
--- a/doc/src/sgml/planstats.sgml
+++ b/doc/src/sgml/planstats.sgml
@@ -8,4 +8,3 @@
-   linkend="using-explain"/> and <xref linkend="planner-stats"/> to show some
-   additional details about how the planner uses the
-   system statistics to estimate the number of rows each part of a query might
-   return. This is a significant part of the planning process,
+   linkend="using-explain"/> and <xref linkend="planner-stats"/> to show
+   how row count estimates are computed for each part of a query.
+   This is a significant part of the planning process,
@@ -49,2 +48 @@ EXPLAIN SELECT * FROM tenk1;
-   How the planner determines the cardinality of <structname>tenk1</structname>
-   is covered in <xref linkend="planner-stats"/>, but is repeated here for
+   This is covered in <xref linkend="planner-stats"/>, but is repeated here for
@@ -471,2 +469,2 @@ ANALYZE t;
-    As explained in <xref linkend="planner-stats"/>, the planner can determine
-    cardinality of <structname>t</structname> using the number of pages and
+    As explained in <xref linkend="planner-stats"/>, cardinality of
+    <structname>t</structname> can be determined using the number of pages and
@@ -593,2 +591,2 @@ EXPLAIN (ANALYZE, TIMING OFF, BUFFERS OFF) SELECT COUNT(*) FROM t GROUP BY a, b;
-    As explained in <xref linkend="functional-dependencies"/>, functional
-    dependencies are very cheap and efficient type of statistics, but their
+    As explained in <xref linkend="functional-dependencies"/>, these
+    are a very cheap and efficient type of statistic, but their
diff --git a/doc/src/sgml/plhandler.sgml b/doc/src/sgml/plhandler.sgml
index 980c95ecf39..6f58d07ccfa 100644
--- a/doc/src/sgml/plhandler.sgml
+++ b/doc/src/sgml/plhandler.sgml
@@ -30,2 +30 @@
-    For more details on C language calling conventions and dynamic loading,
-    see <xref linkend="xfunc-c"/>.
+    For more details, see <xref linkend="xfunc-c"/>.
diff --git a/doc/src/sgml/plperl.sgml b/doc/src/sgml/plperl.sgml
index 6f018645f11..818fea2855a 100644
--- a/doc/src/sgml/plperl.sgml
+++ b/doc/src/sgml/plperl.sgml
@@ -43,2 +43 @@
-    PL/Perl during the installation process.  (Refer to <xref
-    linkend="installation"/> for more information.)  Users of
+    PL/Perl during <xref linkend="installation"/>.  Users of
@@ -108,2 +107 @@ $$ LANGUAGE plperl;
-   most convenient to use dollar quoting (see <xref
-   linkend="sql-syntax-dollar-quoting"/>) for the string constant.
+   most convenient to use <xref linkend="sql-syntax-dollar-quoting"/>.
@@ -915,2 +913,2 @@ CALL transaction_test1();
-        Returns the contents of the referenced array as a string in array literal format
-        (see <xref linkend="arrays-input"/>).
+        Returns the contents of the referenced array as a string in
+        <xref linkend="arrays-input"/> format.
@@ -951,2 +949,2 @@ CALL transaction_test1();
-        Returns the contents of the referenced array as a string in array constructor format
-        (see <xref linkend="sql-syntax-array-constructors"/>).
+        Returns the contents of the referenced array as a string in
+        <xref linkend="sql-syntax-array-constructors"/> format.
diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
index 561f6e50d63..a4a158d9101 100644
--- a/doc/src/sgml/plpgsql.sgml
+++ b/doc/src/sgml/plpgsql.sgml
@@ -136 +136 @@
-     works exactly the same way as for SQL functions, as discussed in
+     works exactly the same way as for
@@ -142,2 +142,2 @@
-     accept and return the polymorphic types described in
-     <xref linkend="extend-types-polymorphic"/>, thus allowing the actual data
+     accept and return <xref linkend="extend-types-polymorphic"/>, thus allowing
+     the actual data
@@ -193,2 +193,2 @@ LANGUAGE plpgsql;
-   FUNCTION</command> is concerned.  It is often helpful to use dollar quoting
-   (see <xref linkend="sql-syntax-dollar-quoting"/>) to write the function
+   FUNCTION</command> is concerned.  It is often helpful to use
+   <xref linkend="sql-syntax-dollar-quoting"/> to write the function
@@ -306,2 +306 @@ $$ LANGUAGE plpgsql;
-     See <xref linkend="plpgsql-transactions"/> for information on managing
-     transactions in <application>PL/pgSQL</application>.
+     See <xref linkend="plpgsql-transactions"/>.
@@ -358,2 +357,2 @@ arow RECORD;
-      The <literal>COLLATE</literal> option specifies a collation to use for the
-      variable (see <xref linkend="plpgsql-declaration-collation"/>).
+      The <literal>COLLATE</literal> option specifies
+      <xref linkend="plpgsql-declaration-collation"/> for the variable.
@@ -517,3 +516,3 @@ SELECT * FROM sum_n_product(2, 4);
-      As discussed in <xref linkend="xfunc-output-parameters"/>, this
-      effectively creates an anonymous record type for the function's
-      results.  If a <literal>RETURNS</literal> clause is given, it must say
+      This effectively creates an anonymous record type for the function's
+      results, as described in <xref linkend="xfunc-output-parameters"/>.
+      If a <literal>RETURNS</literal> clause is given, it must say
@@ -545,2 +544,2 @@ CALL sum_n_product(2, 4, NULL, NULL);
-      However, when calling a procedure
-      from <application>PL/pgSQL</application>, you should instead write a
+      However, when <xref linkend="plpgsql-statements-calling-procedure"/>, you
+      should instead write a
@@ -548,2 +547 @@ CALL sum_n_product(2, 4, NULL, NULL);
-      of the call.  See <xref linkend="plpgsql-statements-calling-procedure"/>
-      for details.
+      of the call.
@@ -573,2 +571 @@ $$ LANGUAGE plpgsql;
-      is declared as a polymorphic type (see
-      <xref linkend="extend-types-polymorphic"/>), a special
+      is declared as <xref linkend="extend-types-polymorphic"/>, a special
@@ -703 +700 @@ user_ids users.user_id%TYPE ARRAY[4];  -- equivalent to the above
-    Just as when declaring table columns that are arrays, it doesn't
+    Just as with <xref linkend="arrays-declaration"/>, it doesn't
@@ -707 +703,0 @@ user_ids users.user_id%TYPE ARRAY[4];  -- equivalent to the above
-    (See <xref linkend="arrays-declaration"/>.)
@@ -831 +827,2 @@ SELECT merge_fields(t.*) FROM table1 t WHERE ... ;
-    When a <application>PL/pgSQL</application> function has one or more
+    As described in <xref linkend="collation"/>, when a
+    <application>PL/pgSQL</application> function has one or more
@@ -834 +831 @@ SELECT merge_fields(t.*) FROM table1 t WHERE ... ;
-    arguments, as described in <xref linkend="collation"/>.  If a collation is
+    arguments.  If a collation is
@@ -934,2 +931 @@ SELECT <replaceable>expression</replaceable>
-     are replaced by query parameters, as discussed in detail in
-     <xref linkend="plpgsql-var-subst"/>.
+     are subject to <xref linkend="plpgsql-var-subst"/>.
@@ -938 +934,3 @@ SELECT <replaceable>expression</replaceable>
-     evaluations with different values of the variables.  Thus, what
+     evaluations with different values of the variables, as described in
+     <xref linkend="plpgsql-plan-caching"/>.
+     Thus, what
@@ -955 +952,0 @@ PREPARE <replaceable>statement_name</replaceable>(integer, integer) AS SELECT $1
-     More information appears in <xref linkend="plpgsql-plan-caching"/>.
@@ -986 +983 @@ IF count(*) &gt; 0 FROM my_table THEN ...
-    as described in <xref linkend="plpgsql-statements-general-sql"/>.
+    see <xref linkend="plpgsql-statements-general-sql"/>.
@@ -1051,2 +1048,2 @@ INSERT INTO mytable VALUES (1,'one'), (2,'two');
-     an <literal>INTO</literal> clause to capture the output, as described
-     in <xref linkend="plpgsql-statements-sql-onerow"/>.
+     an <literal>INTO</literal> clause to capture the output; see
+     <xref linkend="plpgsql-statements-sql-onerow"/>.
@@ -1078,2 +1075,2 @@ INSERT INTO mytable VALUES (1,'one'), (2,'two');
-     at run time.  This is exactly like the processing described earlier
-     for expressions; for details see <xref linkend="plpgsql-var-subst"/>.
+     at run time.  This is exactly the process described in
+     <xref linkend="plpgsql-var-subst"/>.
@@ -1084,3 +1081,2 @@ INSERT INTO mytable VALUES (1,'one'), (2,'two');
-     <application>PL/pgSQL</application> may cache and re-use the execution
-     plan for the command, as discussed in
-     <xref linkend="plpgsql-plan-caching"/>.
+     <application>PL/pgSQL</application> may use
+     <xref linkend="plpgsql-plan-caching"/> for the command.
@@ -1095,2 +1091,2 @@ INSERT INTO mytable VALUES (1,'one'), (2,'two');
-     command as a string and then <command>EXECUTE</command> it, as
-     discussed in <xref linkend="plpgsql-statements-executing-dyn"/>.
+     command as a string and then use the <command>EXECUTE</command> statement
+     described in <xref linkend="plpgsql-statements-executing-dyn"/>.
@@ -1126,3 +1122,4 @@ PERFORM <replaceable>query</replaceable>;
-     <literal>FOUND</literal> is set to true if the query produced at
-     least one row, or false if it produced no rows (see
-     <xref linkend="plpgsql-statements-diagnostics"/>).
+     <literal>FOUND</literal> described in
+     <xref linkend="plpgsql-statements-diagnostics"/> is set to true if the
+     query produced at
+     least one row, or false if it produced no rows.
@@ -1231,2 +1228,2 @@ MERGE ... RETURNING <replaceable>expressions</replaceable> INTO <optional>STRICT
-     You can check the special <literal>FOUND</literal> variable (see
-     <xref linkend="plpgsql-statements-diagnostics"/>) to
+     You can check the special variable <literal>FOUND</literal> described in
+     <xref linkend="plpgsql-statements-diagnostics"/> to
@@ -1320,2 +1317 @@ CONTEXT:  PL/pgSQL function get_userid(text) line 6 at SQL statement
-     normal attempts to cache plans for commands (as discussed in
-     <xref linkend="plpgsql-plan-caching"/>) will not work in such
+     normal <xref linkend="plpgsql-plan-caching"/> will not work in such
@@ -1483,4 +1479,2 @@ EXECUTE format('SELECT count(*) FROM %I '
-     function body is dollar quoting.  (If you have legacy code that does
-     not use dollar quoting, please refer to the
-     overview in <xref linkend="plpgsql-quote-tips"/>, which can save you
-     some effort when translating said code to a more reasonable scheme.)
+     function body is dollar quoting.  (For legacy code without dollar quoting,
+     see <xref linkend="plpgsql-quote-tips"/>.)
@@ -1584,3 +1578,2 @@ EXECUTE 'UPDATE tbl SET '
-     Dynamic SQL statements can also be safely constructed using the
-     <function>format</function> function (see <xref
-     linkend="functions-string-format"/>). For example:
+     Dynamic SQL statements can also be safely constructed using
+     <xref linkend="functions-string-format"/>. For example:
@@ -2668,4 +2661,4 @@ $$ LANGUAGE plpgsql;
-     <application>PL/pgSQL</application> variables are replaced by query parameters,
-     and the query plan is cached for possible re-use, as discussed in
-     detail in <xref linkend="plpgsql-var-subst"/> and
-     <xref linkend="plpgsql-plan-caching"/>.
+     <application>PL/pgSQL</application> variables are replaced by query
+     parameters
+     (see <xref linkend="plpgsql-var-subst"/>), and the query plan is cached for
+     possible re-use (see <xref linkend="plpgsql-plan-caching"/>).
@@ -2694 +2687 @@ END LOOP <optional> <replaceable>label</replaceable> </optional>;
-     through is to declare it as a cursor.  This is described in
+     through is to declare it as a cursor; see
@@ -3221,2 +3214 @@ DECLARE
-      via the <command>FOR</command> statement described in
-      <xref linkend="plpgsql-cursor-for-loop"/>.
+      via <xref linkend="plpgsql-cursor-for-loop"/>.
@@ -3345,2 +3337,2 @@ OPEN <replaceable>bound_cursorvar</replaceable> <optional> ( <optional> <replace
-          separate it from the argument expression. Similar to calling
-          functions, described in <xref linkend="sql-syntax-calling-funcs"/>, it
+          separate it from the argument expression. Similar to
+          <xref linkend="sql-syntax-calling-funcs"/>, it
@@ -3772 +3764 @@ CALL transaction_test1();
-    exception handlers (see <xref linkend="plpgsql-error-trapping"/>).
+    <xref linkend="plpgsql-error-trapping"/>.
@@ -3890,2 +3882 @@ RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
-    See <xref linkend="errcodes-appendix"/> for the valid error condition
-    names and the predefined SQLSTATE codes.
+    See <xref linkend="errcodes-appendix"/>.
@@ -4825,2 +4816 @@ INSERT INTO foo (foo) VALUES (foo(foo));
-    that, you must build a command string dynamically, as explained in
-    <xref linkend="plpgsql-statements-executing-dyn"/>.)
+    that, see <xref linkend="plpgsql-statements-executing-dyn"/>.)
@@ -5181,3 +5171,2 @@ $$ LANGUAGE plpgsql;
-    It's recommended that you instead write the function body as a
-    <quote>dollar-quoted</quote> string literal (see <xref
-    linkend="sql-syntax-dollar-quoting"/>).  In the dollar-quoting
+    It's recommended that you instead write the function body as
+    <xref linkend="sql-syntax-dollar-quoting"/>.  In the dollar-quoting
@@ -5500,2 +5489,2 @@ HINT:  Make sure the query returns the exact list of columns.
-       single quotes in the function body. (See <xref
-       linkend="plpgsql-quote-tips"/>.)
+       single quotes in the function body
+       (see <xref linkend="plpgsql-quote-tips"/>).
@@ -5533 +5522,2 @@ HINT:  Make sure the query returns the exact list of columns.
-       Integer <command>FOR</command> loops with <literal>REVERSE</literal> work
+       <xref linkend="plpgsql-integer-for"/> with <literal>REVERSE</literal>
+       work
@@ -5538,2 +5528 @@ HINT:  Make sure the query returns the exact list of columns.
-       but is unlikely to be changed. (See <xref
-       linkend="plpgsql-integer-for"/>.)
+       but is unlikely to be changed.
diff --git a/doc/src/sgml/plpython.sgml b/doc/src/sgml/plpython.sgml
index c860a47a2e1..f5196b6e685 100644
--- a/doc/src/sgml/plpython.sgml
+++ b/doc/src/sgml/plpython.sgml
@@ -789,2 +789,2 @@ $$ LANGUAGE plpython3u;
-   <application>PL/Python</application> can be used to define event triggers
-   (see also <xref linkend="event-triggers"/>).
+   <application>PL/Python</application> can be used to define
+   <xref linkend="event-triggers"/>.
@@ -1011 +1011 @@ rv = plan.execute(["name"], 5)
-      and Python data types as described in <xref linkend="plpython-data"/>.
+      and Python <xref linkend="plpython-data"/>.
@@ -1016 +1016 @@ rv = plan.execute(["name"], 5)
-      saved.  Read the SPI documentation (<xref linkend="spi"/>) for a
+      saved.  Read <xref linkend="spi"/> for a
@@ -1019,2 +1019,2 @@ rv = plan.execute(["name"], 5)
-      dictionaries <literal>SD</literal> or <literal>GD</literal> (see
-      <xref linkend="plpython-sharing"/>). For example:
+      dictionaries <literal>SD</literal> or <literal>GD</literal>,
+      as described in <xref linkend="plpython-sharing"/>. For example:
@@ -1195,2 +1195,2 @@ $$ LANGUAGE plpython3u;
-   Recovering from errors caused by database access as described in
-   <xref linkend="plpython-trapping"/> can lead to an undesirable
+   <xref linkend="plpython-trapping"/> in database access can lead to an
+   undesirable
diff --git a/doc/src/sgml/pltcl.sgml b/doc/src/sgml/pltcl.sgml
index 9fd008a99d7..324c8a2f366 100644
--- a/doc/src/sgml/pltcl.sgml
+++ b/doc/src/sgml/pltcl.sgml
@@ -482 +482,2 @@ $$ LANGUAGE pltcl;
-        executed within an SQL subtransaction.  If the script returns an
+        executed within <xref linkend="pltcl-subtransactions"/>.  If the script
+        returns an
@@ -485,2 +485,0 @@ $$ LANGUAGE pltcl;
-        See <xref linkend="pltcl-subtransactions"/> for more details and an
-        example.
@@ -930 +928,0 @@ if {[catch { spi_exec $sql_command }]} {
-     Recovering from errors caused by database access as described in
diff --git a/doc/src/sgml/postgres-fdw.sgml b/doc/src/sgml/postgres-fdw.sgml
index b9e1b04463e..2b2cab16d97 100644
--- a/doc/src/sgml/postgres-fdw.sgml
+++ b/doc/src/sgml/postgres-fdw.sgml
@@ -119,2 +119 @@
-    can have the same options that <application>libpq</application> accepts in
-    connection strings, as described in <xref linkend="libpq-paramkeywords"/>,
+    can have the same <xref linkend="libpq-paramkeywords"/>,
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 49f81676712..ecc1ed9e77b 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -401,2 +401,2 @@
-   message type.  (Details of the exact representation of each message
-   appear in <xref linkend="protocol-message-formats"/>.)  There are
+   message type.  (Details appear in
+   <xref linkend="protocol-message-formats"/>.)  There are
@@ -563 +563,2 @@
-        The frontend must now initiate a SASL negotiation, using one of the
+        The frontend must now initiate <xref linkend="sasl-authentication"/>,
+        using one of the
@@ -568,2 +569 @@
-        AuthenticationSASLContinue. See <xref linkend="sasl-authentication"/>
-        for details.
+        AuthenticationSASLContinue.
@@ -759,2 +759,3 @@
-        The backend is ready to copy data from the frontend to a
-        table; see <xref linkend="protocol-copy"/>.
+        The backend is ready for <xref linkend="protocol-copy"/> from the
+        frontend to a
+        table.
@@ -769,2 +770,3 @@
-        The backend is ready to copy data from a table to the
-        frontend; see <xref linkend="protocol-copy"/>.
+        The backend is ready for <xref linkend="protocol-copy"/> from a table to
+        the
+        frontend.
@@ -849,2 +851,2 @@
-    <command>COPY</command> to or from the frontend invokes special protocol
-    as described in <xref linkend="protocol-copy"/>.
+    <command>COPY</command> to or from the frontend invokes
+    <xref linkend="protocol-copy"/>.
@@ -1463,2 +1465,2 @@ SELCT 1/0;<!-- this typo is intentional -->
-    and should be prepared for other asynchronous message types as well (see
-    <xref linkend="protocol-async"/>).  Otherwise, any message type other than
+    and should be prepared for other <xref linkend="protocol-async"/> as well.
+    Otherwise, any message type other than
@@ -1704,3 +1706,2 @@ SELCT 1/0;<!-- this typo is intentional -->
-    able to capture the session traffic. For more information on
-    encrypting <productname>PostgreSQL</productname> sessions with
-    <acronym>SSL</acronym>, see <xref linkend="ssl-tcp"/>.
+    able to capture the session traffic.  For more information,
+    see <xref linkend="ssl-tcp"/>.
@@ -1813,3 +1814,2 @@ SELCT 1/0;<!-- this typo is intentional -->
-    able to capture the session traffic. For more information on
-    encrypting <productname>PostgreSQL</productname> sessions with
-    <acronym>GSSAPI</acronym>, see <xref linkend="gssapi-enc"/>.
+    able to capture the session traffic.  For more information,
+    see <xref linkend="gssapi-enc"/>.
@@ -2352,2 +2352,2 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-       slot. See <xref linkend="streaming-replication-slots"/> for more about
-       replication slots.
+       slot. See <xref linkend="streaming-replication-slots"/> for more
+       information.
@@ -2374 +2374 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-          (see <xref linkend="logicaldecoding-output-plugin"/>).
+          see <xref linkend="logicaldecoding-output-plugin"/>.
@@ -2520,2 +2520,2 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-       See <xref linkend="streaming-replication-slots"/> for more about
-       replication slots. This command is currently only supported for logical
+       See <xref linkend="streaming-replication-slots"/> for more information.
+       This command is currently only supported for logical
@@ -2669,2 +2669,2 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-       see <xref linkend="protocol-message-types"/> and <xref
-       linkend="protocol-message-formats"/> for details.
+       see <xref linkend="protocol-message-types"/> and
+       <xref linkend="protocol-message-formats"/>.
@@ -3078,3 +3078,3 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-          plugin.  See <xref linkend="logicaldecoding-pgoutput-options"/> for
-          options that are accepted by the standard (<literal>pgoutput</literal>)
-          plugin.
+          plugin.  See <xref linkend="logicaldecoding-pgoutput-options"/>
+          accepted
+          by the standard (<literal>pgoutput</literal>) plugin.
@@ -3652,2 +3652,2 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-   See <xref linkend="logicaldecoding-pgoutput-options"/> for options
-   that are accepted by the standard (<literal>pgoutput</literal>) plugin.
+   See <xref linkend="logicaldecoding-pgoutput-options"/> accepted
+   by the standard (<literal>pgoutput</literal>) plugin.
@@ -3662 +3662 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-   subsections. Individual messages are described in
+   subsections and described in
@@ -5108,2 +5108,2 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-         The presently defined field types are listed in
-         <xref linkend="protocol-error-fields"/>.
+         The presently defined <xref linkend="protocol-error-fields"/> are
+         listed.
@@ -5548,2 +5548,2 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-         The presently defined field types are listed in
-         <xref linkend="protocol-error-fields"/>.
+         The presently defined <xref linkend="protocol-error-fields"/> are
+         listed.
@@ -6260 +6260 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-             Used to connect in streaming replication mode, where
+             Used to connect in <xref linkend="protocol-replication"/>, where
@@ -6265,2 +6265 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-             <literal>false</literal>. See
-             <xref linkend="protocol-replication"/> for details.
+             <literal>false</literal>.
@@ -6395,2 +6394,2 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-      Code: the SQLSTATE code for the error (see <xref
-      linkend="errcodes-appendix"/>).  Not localizable.  Always present.
+      Code: <xref linkend="errcodes-appendix"/>.  Not localizable.  Always
+      present.
@@ -6594,2 +6593,2 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-   encapsulated inside replication protocol WAL messages as described in
-   <xref linkend="protocol-replication"/>, and generally obey the same message
+   encapsulated inside <xref linkend="protocol-replication"/> WAL messages,
+   and generally obey the same message
diff --git a/doc/src/sgml/queries.sgml b/doc/src/sgml/queries.sgml
index d8d4c3c53ef..84fb5749da0 100644
--- a/doc/src/sgml/queries.sgml
+++ b/doc/src/sgml/queries.sgml
@@ -62 +62 @@ SELECT a, b + c FROM table1;
-  See <xref linkend="queries-select-lists"/> for more details.
+  See <xref linkend="queries-select-lists"/>.
@@ -642,2 +642 @@ SELECT a.* FROM (my_table AS a JOIN your_table AS b ON ...) AS c
-     parentheses.  They may be assigned a table alias name, and optionally
-     column alias names (as in <xref linkend="queries-table-aliases"/>).
+     parentheses.  They may be assigned <xref linkend="queries-table-aliases"/>.
@@ -665 +664 @@ FROM (VALUES ('anne', 'smith'), ('bob', 'jones'), ('joe', 'blow'))
-     For more information see <xref linkend="queries-values"/>.
+     See <xref linkend="queries-values"/>.
@@ -956,2 +955,2 @@ WHERE <replaceable>search_condition</replaceable>
-    where <replaceable>search_condition</replaceable> is any value
-    expression (see <xref linkend="sql-expressions"/>) that
+    where <replaceable>search_condition</replaceable> is any
+    <xref linkend="sql-expressions"/> that
@@ -1108,3 +1107,2 @@ SELECT <replaceable>select_list</replaceable>
-    computes a single value over the entire group.  More information
-    about the available aggregate functions can be found in <xref
-    linkend="functions-aggregate"/>.
+    computes a single value over the entire group.  For more information,
+    see <xref linkend="functions-aggregate"/>.
@@ -1117,2 +1115 @@ SELECT <replaceable>select_list</replaceable>
-     using the <literal>DISTINCT</literal> clause (see <xref
-     linkend="queries-distinct"/>).
+     using the <xref linkend="queries-distinct"/> clause.
@@ -1485,2 +1482 @@ GROUP BY GROUPING SETS (
-    <xref linkend="tutorial-window"/>,
-    <xref linkend="functions-window"/> and
+    <xref linkend="tutorial-window"/>, <xref linkend="functions-window"/>, and
@@ -1556,2 +1552,2 @@ SELECT a, b, c FROM ...
-     in the <literal>FROM</literal> clause, or the aliases given to them as
-     explained in <xref linkend="queries-table-aliases"/>.  The name
+     in the <literal>FROM</literal> clause, or the
+     <xref linkend="queries-table-aliases"/> given to them.  The name
@@ -1782,2 +1778,2 @@ SELECT DISTINCT ON (<replaceable>expression</replaceable> <optional>, <replaceab
-   the corresponding columns have compatible data types, as
-   described in <xref linkend="typeconv-union-case"/>.
+   the corresponding columns have compatible data types.
+   See <xref linkend="typeconv-union-case"/> for details.
@@ -2022,2 +2018,2 @@ VALUES ( <replaceable class="parameter">expression</replaceable> [, ...] ) [, ..
-   of the result is determined using the same rules as for <literal>UNION</literal>
-   (see <xref linkend="typeconv-union-case"/>).
+   of the result is determined using the same rules as for
+   <xref linkend="typeconv-union-case"/>.
diff --git a/doc/src/sgml/query.sgml b/doc/src/sgml/query.sgml
index b190f28d41e..79ee2b57a54 100644
--- a/doc/src/sgml/query.sgml
+++ b/doc/src/sgml/query.sgml
@@ -776,2 +776,2 @@ SELECT city, count(*), max(temp_lo)
-      The <literal>LIKE</literal> operator does pattern matching and
-      is explained in <xref linkend="functions-matching"/>.
+      The <literal>LIKE</literal> operator does
+      <xref linkend="functions-matching"/>.
diff --git a/doc/src/sgml/rangetypes.sgml b/doc/src/sgml/rangetypes.sgml
index 92ea0e83dab..ecd97bb1129 100644
--- a/doc/src/sgml/rangetypes.sgml
+++ b/doc/src/sgml/rangetypes.sgml
@@ -132 +132,2 @@ SELECT isempty(numrange(1, 5));
-   In the text form of a range, an inclusive lower bound is represented by
+   In <xref linkend="rangetypes-io"/>, an inclusive lower bound is represented
+   by
@@ -137 +137,0 @@ SELECT isempty(numrange(1, 5));
-   (See <xref linkend="rangetypes-io"/> for more details.)
@@ -231,2 +231 @@ empty
-    composite-type literals.  See <xref linkend="rowtypes-io-syntax"/> for
-    additional commentary.
+    <xref linkend="rowtypes-io-syntax"/>.
diff --git a/doc/src/sgml/ref/alter_default_privileges.sgml b/doc/src/sgml/ref/alter_default_privileges.sgml
index 6acd0f1df91..faa0493a2ac 100644
--- a/doc/src/sgml/ref/alter_default_privileges.sgml
+++ b/doc/src/sgml/ref/alter_default_privileges.sgml
@@ -207,2 +207 @@ REVOKE [ GRANT OPTION FOR ]
-   The meaning of the privilege display is the same as explained for
-   <command>\dp</command> in <xref linkend="ddl-priv"/>.
+   See <xref linkend="ddl-priv"/> for the meaning of the privilege display.
diff --git a/doc/src/sgml/ref/alter_index.sgml b/doc/src/sgml/ref/alter_index.sgml
index fb7096c16ea..c00617e6401 100644
--- a/doc/src/sgml/ref/alter_index.sgml
+++ b/doc/src/sgml/ref/alter_index.sgml
@@ -160,3 +160 @@ ALTER INDEX ALL IN TABLESPACE <replaceable class="parameter">name</replaceable>
-      For more information on the use of statistics by the
-      <productname>PostgreSQL</productname> query planner, refer to
-      <xref linkend="planner-stats"/>.
+      See <xref linkend="planner-stats"/>.
diff --git a/doc/src/sgml/ref/alter_statistics.sgml b/doc/src/sgml/ref/alter_statistics.sgml
index c82a728a910..9d9dfb617da 100644
--- a/doc/src/sgml/ref/alter_statistics.sgml
+++ b/doc/src/sgml/ref/alter_statistics.sgml
@@ -109,3 +109 @@ ALTER STATISTICS <replaceable class="parameter">name</replaceable> SET STATISTIC
-        For more information on the use of statistics by the
-        <productname>PostgreSQL</productname> query planner, refer to
-        <xref linkend="planner-stats"/>.
+        See <xref linkend="planner-stats"/>.
diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml
index e4f0b6b16c7..1f182b5109e 100644
--- a/doc/src/sgml/ref/alter_subscription.sgml
+++ b/doc/src/sgml/ref/alter_subscription.sgml
@@ -211,4 +211 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
-          See <xref linkend="sequence-definition-mismatches"/> for recommendations on how
-          to handle any warnings about sequence definition differences between
-          the publisher and the subscriber, which might occur when
-          <literal>copy_data = true</literal>.
+          See <xref linkend="sequence-definition-mismatches"/>.
@@ -247,3 +244 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
-      See <xref linkend="sequence-definition-mismatches"/> for
-      recommendations on how to handle any warnings about sequence definition
-      differences between the publisher and the subscriber.
+      See <xref linkend="sequence-definition-mismatches"/>.
@@ -252,2 +247 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
-      See <xref linkend="sequences-out-of-sync"/> for recommendations on how to
-      identify and handle out-of-sync sequences.
+      See <xref linkend="sequences-out-of-sync"/>.
@@ -373,2 +367 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
-      is cleared.  See <xref linkend="logical-replication-conflicts"/> for
-      the details of logical replication conflicts.
+      is cleared.  See <xref linkend="logical-replication-conflicts"/>.
diff --git a/doc/src/sgml/ref/alter_system.sgml b/doc/src/sgml/ref/alter_system.sgml
index b28919d1b26..c6cb83ed3a4 100644
--- a/doc/src/sgml/ref/alter_system.sgml
+++ b/doc/src/sgml/ref/alter_system.sgml
@@ -115 +115 @@ ALTER SYSTEM RESET ALL
-   See <xref linkend="config-setting"/> for other ways to set the parameters.
+   See <xref linkend="config-setting"/>.
diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml
index dec34337d1a..b88306d1af6 100644
--- a/doc/src/sgml/ref/alter_table.sgml
+++ b/doc/src/sgml/ref/alter_table.sgml
@@ -369,3 +369 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      For more information on the use of statistics by the
-      <productname>PostgreSQL</productname> query planner, refer to
-      <xref linkend="planner-stats"/>.
+      See <xref linkend="planner-stats"/>.
@@ -409,3 +407 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      time.  For more information on the use of statistics by the
-      <productname>PostgreSQL</productname> query planner, refer to
-      <xref linkend="planner-stats"/>.
+      time.  See <xref linkend="planner-stats"/>.
@@ -431 +427,2 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      column is held inline or in a secondary <acronym>TOAST</acronym> table,
+      column is held inline or in a secondary <xref linkend="storage-toast"/>
+      table,
@@ -449 +445,0 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      See <xref linkend="storage-toast"/> for more information.
@@ -867,3 +863,2 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      <xref linkend="sql-createtable-storage-parameters"/> in the
-      <link linkend="sql-createtable"><command>CREATE TABLE</command></link> documentation
-      for details on the available parameters.  Note that the table contents
+      <xref linkend="sql-createtable-storage-parameters"/>.  Note that the table
+      contents
@@ -1254,2 +1249,2 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      <command>ALTER TABLE MERGE PARTITION</command> would fail.
-      (see <xref linkend="ddl-depend"/>).
+      <command>ALTER TABLE MERGE PARTITION</command> would fail, as described in
+      <xref linkend="ddl-depend"/>.
@@ -1356 +1351 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      would fail (see <xref linkend="ddl-depend"/>).
+      would fail, as described in <xref linkend="ddl-depend"/>.
diff --git a/doc/src/sgml/ref/analyze.sgml b/doc/src/sgml/ref/analyze.sgml
index ec81f00fecf..2db5c377059 100644
--- a/doc/src/sgml/ref/analyze.sgml
+++ b/doc/src/sgml/ref/analyze.sgml
@@ -196 +196 @@ ANALYZE [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <r
-   the autovacuum daemon (see <xref linkend="autovacuum"/>)
+   <xref linkend="autovacuum"/>
@@ -332 +332 @@ ANALYZE [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <r
-    <xref linkend="analyze-progress-reporting"/> for details.
+    <xref linkend="analyze-progress-reporting"/>.
diff --git a/doc/src/sgml/ref/call.sgml b/doc/src/sgml/ref/call.sgml
index 9e83a77b7c9..2ded92b3d6e 100644
--- a/doc/src/sgml/ref/call.sgml
+++ b/doc/src/sgml/ref/call.sgml
@@ -65 +65 @@ CALL <replaceable class="parameter">name</replaceable> ( [ <replaceable class="p
-      <xref linkend="sql-syntax-calling-funcs"/> for details.
+      <xref linkend="sql-syntax-calling-funcs"/>.
diff --git a/doc/src/sgml/ref/checkpoint.sgml b/doc/src/sgml/ref/checkpoint.sgml
index 4d39610851d..0afb590c5d7 100644
--- a/doc/src/sgml/ref/checkpoint.sgml
+++ b/doc/src/sgml/ref/checkpoint.sgml
@@ -49 +49 @@ CHECKPOINT [ ( option [, ...] ) ]
-   regular checkpoint scheduled by the system (controlled by the settings in
+   regular checkpoint scheduled by the system (see
@@ -103,2 +103,2 @@ CHECKPOINT [ ( option [, ...] ) ]
-      request the checkpoint be spread over a longer interval (controlled via
-      the settings in <xref linkend="runtime-config-wal-checkpoints"/>), like a
+      request the checkpoint be spread over a longer interval (see
+      <xref linkend="runtime-config-wal-checkpoints"/>), like a
diff --git a/doc/src/sgml/ref/cluster.sgml b/doc/src/sgml/ref/cluster.sgml
index ffb3ff898c6..372cd8513d3 100644
--- a/doc/src/sgml/ref/cluster.sgml
+++ b/doc/src/sgml/ref/cluster.sgml
@@ -115 +115 @@ CLUSTER [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <r
-    <xref linkend="cluster-progress-reporting"/> for details.
+    <xref linkend="cluster-progress-reporting"/>.
diff --git a/doc/src/sgml/ref/clusterdb.sgml b/doc/src/sgml/ref/clusterdb.sgml
index 0d2051bf6f1..81b5e734019 100644
--- a/doc/src/sgml/ref/clusterdb.sgml
+++ b/doc/src/sgml/ref/clusterdb.sgml
@@ -299,2 +299 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/copy.sgml b/doc/src/sgml/ref/copy.sgml
index 4706c9a4410..4bebc337e42 100644
--- a/doc/src/sgml/ref/copy.sgml
+++ b/doc/src/sgml/ref/copy.sgml
@@ -94 +94 @@ COPY { <replaceable class="parameter">table_name</replaceable> [ ( <replaceable
-    <xref linkend="copy-progress-reporting"/> for details.
+    <xref linkend="copy-progress-reporting"/>.
diff --git a/doc/src/sgml/ref/create_access_method.sgml b/doc/src/sgml/ref/create_access_method.sgml
index dae43dbaed5..d078c4a9694 100644
--- a/doc/src/sgml/ref/create_access_method.sgml
+++ b/doc/src/sgml/ref/create_access_method.sgml
@@ -83,3 +83,2 @@ CREATE ACCESS METHOD <replaceable class="parameter">name</replaceable>
-      depending on the type of access method. The table access method API
-      is described in <xref linkend="tableam"/> and the index access method
-      API is described in <xref linkend="indexam"/>.
+      depending on the type of access method. See <xref linkend="tableam"/> and
+      <xref linkend="indexam"/>.
diff --git a/doc/src/sgml/ref/create_aggregate.sgml b/doc/src/sgml/ref/create_aggregate.sgml
index 0472ac2e874..a5e869997e8 100644
--- a/doc/src/sgml/ref/create_aggregate.sgml
+++ b/doc/src/sgml/ref/create_aggregate.sgml
@@ -94,2 +94,2 @@ CREATE [ OR REPLACE ] AGGREGATE <replaceable class="parameter">name</replaceable
-   commonly-used aggregate functions are included with the distribution; they
-   are documented in <xref linkend="functions-aggregate"/>. If one defines new
+   commonly-used aggregate functions are included with the distribution in
+   <xref linkend="functions-aggregate"/>. If one defines new
@@ -210,2 +210,2 @@ CREATE [ OR REPLACE ] AGGREGATE <replaceable class="parameter">name</replaceable
-   An aggregate can optionally support <firstterm>moving-aggregate mode</firstterm>,
-   as described in <xref linkend="xaggr-moving-aggregates"/>.  This requires
+   An aggregate can optionally support
+   <xref linkend="xaggr-moving-aggregates"/>.  This requires
@@ -239,2 +239,2 @@ CREATE [ OR REPLACE ] AGGREGATE <replaceable class="parameter">name</replaceable
-   An aggregate can optionally support <firstterm>partial aggregation</firstterm>,
-   as described in <xref linkend="xaggr-partial-aggregates"/>.
+   An aggregate can optionally support
+   <xref linkend="xaggr-partial-aggregates"/>.
diff --git a/doc/src/sgml/ref/create_collation.sgml b/doc/src/sgml/ref/create_collation.sgml
index 4af1836ae30..10b67bbb659 100644
--- a/doc/src/sgml/ref/create_collation.sgml
+++ b/doc/src/sgml/ref/create_collation.sgml
@@ -141,2 +141,2 @@ CREATE COLLATION [ IF NOT EXISTS ] <replaceable>name</replaceable> FROM <replace
-       <literal>libc</literal> is the default.  See <xref
-       linkend="locale-providers"/> for details.
+       <literal>libc</literal> is the default.  See
+       <xref linkend="locale-providers"/>.
@@ -230 +230 @@ CREATE COLLATION [ IF NOT EXISTS ] <replaceable>name</replaceable> FROM <replace
-   See <xref linkend="collation-create"/> for more information on how to create collations.
+   See <xref linkend="collation-create"/>.
@@ -265,2 +265 @@ CREATE COLLATION german_phonebook (provider = icu, locale = 'de-u-co-phonebk');
-   See <xref linkend="icu-tailoring-rules"/> for further details and examples
-   on the rules syntax.
+   See <xref linkend="icu-tailoring-rules"/>.
diff --git a/doc/src/sgml/ref/create_database.sgml b/doc/src/sgml/ref/create_database.sgml
index 3544b15efda..21c9c146c29 100644
--- a/doc/src/sgml/ref/create_database.sgml
+++ b/doc/src/sgml/ref/create_database.sgml
@@ -117,3 +117,2 @@ CREATE DATABASE <replaceable class="parameter">name</replaceable>
-        template database). The character sets supported by the
-        <productname>PostgreSQL</productname> server are described in
-        <xref linkend="multibyte-charset-supported"/>. See below for
+        template database). See <xref linkend="multibyte-charset-supported"/>.
+        See below for
@@ -282,2 +281,2 @@ CREATE DATABASE <replaceable class="parameter">name</replaceable>
-        linkend="create-database-template"/>. See <xref
-        linkend="locale-providers"/> for details.
+        linkend="create-database-template"/>. See
+        <xref linkend="locale-providers"/>.
@@ -414 +413 @@ CREATE DATABASE <replaceable class="parameter">name</replaceable>
-   See <xref linkend="manage-ag-templatedbs"/> for more information.
+   See <xref linkend="manage-ag-templatedbs"/>.
diff --git a/doc/src/sgml/ref/create_domain.sgml b/doc/src/sgml/ref/create_domain.sgml
index c111285a69c..079907b5cdf 100644
--- a/doc/src/sgml/ref/create_domain.sgml
+++ b/doc/src/sgml/ref/create_domain.sgml
@@ -225,2 +225 @@ INSERT INTO tab (domcol) VALUES ((SELECT domcol FROM tab WHERE false));
-   and not at other times.  (This is essentially the same as the treatment
-   of table <literal>CHECK</literal> constraints, as described in
+   and not at other times.  (This is essentially the same as
diff --git a/doc/src/sgml/ref/create_event_trigger.sgml b/doc/src/sgml/ref/create_event_trigger.sgml
index ef12cfa20d4..c4b9fdb2106 100644
--- a/doc/src/sgml/ref/create_event_trigger.sgml
+++ b/doc/src/sgml/ref/create_event_trigger.sgml
@@ -38,2 +38,2 @@ CREATE EVENT TRIGGER <replaceable class="parameter">name</replaceable>
-   will be executed.  For a general introduction to event triggers, see
-   <xref linkend="event-triggers"/>.  The user who creates an event trigger
+   will be executed.  See <xref linkend="event-triggers"/>.  The user who
+   creates an event trigger
diff --git a/doc/src/sgml/ref/create_extension.sgml b/doc/src/sgml/ref/create_extension.sgml
index 713abd9c494..8ea0c76ab3d 100644
--- a/doc/src/sgml/ref/create_extension.sgml
+++ b/doc/src/sgml/ref/create_extension.sgml
@@ -210,2 +210 @@ CREATE EXTENSION [ IF NOT EXISTS ] <replaceable class="parameter">extension_name
-   For information about writing new extensions, see
-   <xref linkend="extend-extensions"/>.
+   See <xref linkend="extend-extensions"/>.
diff --git a/doc/src/sgml/ref/create_foreign_table.sgml b/doc/src/sgml/ref/create_foreign_table.sgml
index 083f16772b7..416d1ba399c 100644
--- a/doc/src/sgml/ref/create_foreign_table.sgml
+++ b/doc/src/sgml/ref/create_foreign_table.sgml
@@ -152,3 +152 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      specifiers. For more information on the data types supported by
-      <productname>PostgreSQL</productname>, refer to <xref
-      linkend="datatype"/>.
+      specifiers. See <xref linkend="datatype"/>.
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml
index 30bd4602f8d..c2ddb3dc652 100644
--- a/doc/src/sgml/ref/create_function.sgml
+++ b/doc/src/sgml/ref/create_function.sgml
@@ -151,2 +151,2 @@ CREATE [ OR REPLACE ] FUNCTION
-       when calling a function to improve readability (see <xref
-       linkend="sql-syntax-calling-funcs"/>).  In any case, the name
+       when calling a function (see <xref linkend="sql-syntax-calling-funcs"/>).
+        In any case, the name
@@ -552,2 +552,2 @@ CREATE [ OR REPLACE ] FUNCTION
-       It is often helpful to use dollar quoting (see <xref
-       linkend="sql-syntax-dollar-quoting"/>) to write the function definition
+       It is often helpful to use <xref linkend="sql-syntax-dollar-quoting"/> to
+       write the function definition
@@ -836,2 +836,2 @@ $$  LANGUAGE plpgsql
-    (see <xref linkend="ddl-priv"/> for more
-    information).  Frequently you will wish to restrict use of a security
+    (see <xref linkend="ddl-priv"/>).  Frequently you will wish to restrict use
+    of a security
diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml
index bb7505d171b..e470b858c26 100644
--- a/doc/src/sgml/ref/create_index.sgml
+++ b/doc/src/sgml/ref/create_index.sgml
@@ -77 +77 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
-    table.  See <xref linkend="indexes-partial"/> for more discussion.
+    table.  See <xref linkend="indexes-partial"/>.
@@ -130 +130 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
-        &mdash; see <xref linkend="sql-createindex-concurrently"/> below.
+        &mdash; see <xref linkend="sql-createindex-concurrently"/>.
@@ -356,2 +356 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
-        <xref linkend="sql-createindex-storage-parameters"/> below
-        for details.
+        <xref linkend="sql-createindex-storage-parameters"/>.
@@ -425,2 +424,2 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
-      workload dependent).  The B-tree bottom-up index deletion technique
-      described in <xref linkend="btree-deletion"/> is dependent on having
+      workload dependent).  <xref linkend="btree-deletion"/> is dependent on
+      having
@@ -461,2 +460 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
-      Controls usage of the B-tree deduplication technique described
-      in <xref linkend="btree-deduplication"/>.  Set to
+      Controls usage of <xref linkend="btree-deduplication"/>.  Set to
@@ -495,2 +493,2 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
-     Controls whether the buffered build technique described in
-     <xref linkend="gist-buffering-build"/> is used to build the index. With
+     Controls whether <xref linkend="gist-buffering-build"/> is used to build
+     the index. With
@@ -522,2 +520 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
-     Controls usage of the fast update technique described in
-     <xref linkend="gin-fast-update"/>.
+     Controls usage of <xref linkend="gin-fast-update"/>.
@@ -717,3 +714 @@ Indexes:
-   See <xref linkend="indexes"/> for information about when indexes can
-   be used, when they are not used, and in which particular situations
-   they can be useful.
+   See <xref linkend="indexes"/>.
@@ -746,3 +741,2 @@ Indexes:
-   the proper class when creating an index.  More information about
-   operator classes is in <xref linkend="indexes-opclass"/> and in <xref
-   linkend="xindex"/>.
+   the proper class when creating an index.  See
+   <xref linkend="indexes-opclass"/> and <xref linkend="xindex"/>.
@@ -893 +887 @@ Indexes:
-    view. See <xref linkend="create-index-progress-reporting"/> for details.
+    view. See <xref linkend="create-index-progress-reporting"/>.
diff --git a/doc/src/sgml/ref/create_language.sgml b/doc/src/sgml/ref/create_language.sgml
index 102efe5a6c7..21cdea59e9e 100644
--- a/doc/src/sgml/ref/create_language.sgml
+++ b/doc/src/sgml/ref/create_language.sgml
@@ -190,2 +190,2 @@ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE <replaceable class="pa
-   The system catalog <classname>pg_language</classname> (see <xref
-   linkend="catalog-pg-language"/>) records information about the
+   The system catalog <xref linkend="catalog-pg-language"/> records information
+   about the
diff --git a/doc/src/sgml/ref/create_materialized_view.sgml b/doc/src/sgml/ref/create_materialized_view.sgml
index 62d897931c3..600fadc26d9 100644
--- a/doc/src/sgml/ref/create_materialized_view.sgml
+++ b/doc/src/sgml/ref/create_materialized_view.sgml
@@ -103,2 +103,2 @@ CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] <replaceable>table_name</replaceable>
-      access method of type <literal>TABLE</literal>. See <xref
-      linkend="tableam"/> for more information.  If this option is not
+      access method of type <literal>TABLE</literal>. See
+      <xref linkend="tableam"/>.  If this option is not
@@ -116,3 +116,3 @@ CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] <replaceable>table_name</replaceable>
-      This clause specifies optional storage parameters for the new
-      materialized view; see
-      <xref linkend="sql-createtable-storage-parameters"/> in the
+      This clause specifies optional
+      <xref linkend="sql-createtable-storage-parameters"/> for the new
+      materialized view; see the
diff --git a/doc/src/sgml/ref/create_opclass.sgml b/doc/src/sgml/ref/create_opclass.sgml
index 2d560b68658..8fc5747289c 100644
--- a/doc/src/sgml/ref/create_opclass.sgml
+++ b/doc/src/sgml/ref/create_opclass.sgml
@@ -279,2 +279,2 @@ CREATE OPERATOR CLASS <replaceable class="parameter">name</replaceable> [ DEFAUL
-   for the data type <literal>_int4</literal> (array of <type>int4</type>).  See the
-   <xref linkend="intarray"/> module for the complete example.
+   for the data type <literal>_int4</literal> (array of <type>int4</type>).  See
+   <xref linkend="intarray"/> for the complete example.
diff --git a/doc/src/sgml/ref/create_operator.sgml b/doc/src/sgml/ref/create_operator.sgml
index d2ffb1b2a50..b77cbd73f69 100644
--- a/doc/src/sgml/ref/create_operator.sgml
+++ b/doc/src/sgml/ref/create_operator.sgml
@@ -109 +109 @@ CREATE OPERATOR <replaceable>name</replaceable> (
-   Their meaning is detailed in <xref linkend="xoper-optimization"/>.
+   See <xref linkend="xoper-optimization"/>.
@@ -301 +301 @@ COMMUTATOR = OPERATOR(myschema.===) ,
-   is hard-wired.  See <xref linkend="sql-precedence"/> for precedence details.
+   is hard-wired.  See <xref linkend="sql-precedence"/>.
diff --git a/doc/src/sgml/ref/create_procedure.sgml b/doc/src/sgml/ref/create_procedure.sgml
index 03a14c86845..7504918e08e 100644
--- a/doc/src/sgml/ref/create_procedure.sgml
+++ b/doc/src/sgml/ref/create_procedure.sgml
@@ -273,2 +273,2 @@ CREATE [ OR REPLACE ] PROCEDURE
-       It is often helpful to use dollar quoting (see <xref
-       linkend="sql-syntax-dollar-quoting"/>) to write the procedure definition
+       It is often helpful to use <xref linkend="sql-syntax-dollar-quoting"/> to
+       write the procedure definition
diff --git a/doc/src/sgml/ref/create_publication.sgml b/doc/src/sgml/ref/create_publication.sgml
index 85cfcaddafa..19bae54eee4 100644
--- a/doc/src/sgml/ref/create_publication.sgml
+++ b/doc/src/sgml/ref/create_publication.sgml
@@ -64,2 +64 @@ CREATE PUBLICATION <replaceable class="parameter">name</replaceable>
-   <xref linkend="logical-replication-publication"/> for details about how
-   publications fit into the logical replication setup.
+   <xref linkend="logical-replication-publication"/>.
@@ -114,2 +113 @@ CREATE PUBLICATION <replaceable class="parameter">name</replaceable>
-      <xref linkend="logical-replication-col-lists"/> for details about column
-      lists.
+      <xref linkend="logical-replication-col-lists"/>.
@@ -294,2 +292 @@ CREATE PUBLICATION <replaceable class="parameter">name</replaceable>
-          See <xref linkend="logical-replication-gencols"/> for more details about
-          logical replication of generated columns.
+          See <xref linkend="logical-replication-gencols"/>.
@@ -424,2 +421 @@ CREATE PUBLICATION <replaceable class="parameter">name</replaceable>
-   See <xref linkend="logical-replication-row-filter"/> for details about row
-   filters.
+   See <xref linkend="logical-replication-row-filter"/>.
diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/create_role.sgml
index cee23b1ea6b..00d8ba6efd4 100644
--- a/doc/src/sgml/ref/create_role.sgml
+++ b/doc/src/sgml/ref/create_role.sgml
@@ -279,3 +279,2 @@ in sync when changing the above synopsis!
-         in a future release of <productname>PostgreSQL</productname>.  Refer
-         to <xref linkend="auth-password"/> for details about migrating to
-         another password type.
+         in a future release of <productname>PostgreSQL</productname>.  Refer to
+         <xref linkend="auth-password"/>.
diff --git a/doc/src/sgml/ref/create_rule.sgml b/doc/src/sgml/ref/create_rule.sgml
index 4871a896dc3..5e58a278621 100644
--- a/doc/src/sgml/ref/create_rule.sgml
+++ b/doc/src/sgml/ref/create_rule.sgml
@@ -58 +58 @@ CREATE [ OR REPLACE ] RULE <replaceable class="parameter">name</replaceable> AS
-   More information about the rules system is in <xref linkend="rules"/>.
+   See <xref linkend="rules"/>.
diff --git a/doc/src/sgml/ref/create_sequence.sgml b/doc/src/sgml/ref/create_sequence.sgml
index 0ffcd0febd1..ce5faf558e2 100644
--- a/doc/src/sgml/ref/create_sequence.sgml
+++ b/doc/src/sgml/ref/create_sequence.sgml
@@ -61,2 +61 @@ CREATE [ { TEMPORARY | TEMP } | UNLOGGED ] SEQUENCE [ IF NOT EXISTS ] <replaceab
-   to operate on the sequence.  These functions are documented in
-   <xref linkend="functions-sequence"/>.
+   to operate on the sequence.  See <xref linkend="functions-sequence"/>.
diff --git a/doc/src/sgml/ref/create_server.sgml b/doc/src/sgml/ref/create_server.sgml
index ce4a064eabb..481f0b37d46 100644
--- a/doc/src/sgml/ref/create_server.sgml
+++ b/doc/src/sgml/ref/create_server.sgml
@@ -155 +155 @@ CREATE SERVER myserver FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', db
-   See <xref linkend="postgres-fdw"/> for more details.
+   See <xref linkend="postgres-fdw"/>.
diff --git a/doc/src/sgml/ref/create_subscription.sgml b/doc/src/sgml/ref/create_subscription.sgml
index 07d5b1bd77c..f17648c0145 100644
--- a/doc/src/sgml/ref/create_subscription.sgml
+++ b/doc/src/sgml/ref/create_subscription.sgml
@@ -60,2 +60 @@ CREATE SUBSCRIPTION <replaceable class="parameter">subscription_name</replaceabl
-   Additional information about subscriptions and logical replication as a
-   whole is available at <xref linkend="logical-replication-subscription"/> and
+   See also <xref linkend="logical-replication-subscription"/> and
@@ -99 +98 @@ CREATE SUBSCRIPTION <replaceable class="parameter">subscription_name</replaceabl
-      to connect to the publisher database.  For details see
+      to connect to the publisher database.  See
@@ -283,4 +282 @@ CREATE SUBSCRIPTION <replaceable class="parameter">subscription_name</replaceabl
-          See <xref linkend="sequence-definition-mismatches"/>
-          for recommendations on how to handle any warnings about sequence
-          definition differences between the publisher and the subscriber,
-          which might occur when <literal>copy_data = true</literal>.
+          See <xref linkend="sequence-definition-mismatches"/>.
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml
index e342585c7f0..1e742eb59f0 100644
--- a/doc/src/sgml/ref/create_table.sgml
+++ b/doc/src/sgml/ref/create_table.sgml
@@ -307,3 +307 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      specifiers. For more information on the data types supported by
-      <productname>PostgreSQL</productname>, refer to <xref
-      linkend="datatype"/>.
+      specifiers. See <xref linkend="datatype"/>.
@@ -336 +334,2 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      column is held inline or in a secondary <acronym>TOAST</acronym> table,
+      column is held inline or in a secondary <xref linkend="storage-toast"/>
+      table,
@@ -349 +347,0 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      See <xref linkend="storage-toast"/> for more information.
@@ -471,2 +469 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      See <xref linkend="ddl-partitioning"/> for more discussion on table
-      partitioning.
+      See <xref linkend="ddl-partitioning"/>.
@@ -526 +523 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      rules of row-wise comparison (<xref linkend="row-wise-comparison"/>).
+      rules of <xref linkend="row-wise-comparison"/>.
@@ -885 +882 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      current row (see <xref linkend="ddl-constraints-check-constraints"/>).
+      current row, per <xref linkend="ddl-constraints-check-constraints"/>.
@@ -1044 +1041 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      other types by adding the <xref linkend="btree-gist"/> extension (which
+      other types by adding <xref linkend="btree-gist"/> (which
@@ -1166,2 +1163,2 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      operator must be associated with an appropriate operator class
-      (see <xref linkend="indexes-opclass"/>) for the index access
+      operator must be associated with an appropriate
+      <xref linkend="indexes-opclass"/> for the index access
@@ -1461,2 +1458,2 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      type <literal>TABLE</literal>. See <xref linkend="tableam"/> for more
-      information.  If this option is not specified, the default table access
+      type <literal>TABLE</literal>. See <xref linkend="tableam"/>.  If this
+      option is not specified, the default table access
@@ -1478,2 +1475,2 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-      see <xref linkend="sql-createtable-storage-parameters"/> below for more
-      information.  For backward-compatibility the <literal>WITH</literal>
+      see <xref linkend="sql-createtable-storage-parameters"/>.  For
+      backward-compatibility the <literal>WITH</literal>
@@ -1595,2 +1592 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-    table's secondary <acronym>TOAST</acronym> table, if any
-    (see <xref linkend="storage-toast"/> for more information about TOAST).
+    table's secondary <xref linkend="storage-toast"/> table, if any.
@@ -1684 +1680 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-     discussed in <xref linkend="autovacuum"/>.
+     (see <xref linkend="autovacuum"/>).
@@ -1686,2 +1682 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
-     transaction ID wraparound. See <xref linkend="vacuum-for-wraparound"/> for
-     more about wraparound prevention.
+     transaction ID wraparound. See <xref linkend="vacuum-for-wraparound"/>.
diff --git a/doc/src/sgml/ref/create_table_as.sgml b/doc/src/sgml/ref/create_table_as.sgml
index 0492933ff38..1c2e2a1aec4 100644
--- a/doc/src/sgml/ref/create_table_as.sgml
+++ b/doc/src/sgml/ref/create_table_as.sgml
@@ -138,2 +138,2 @@ CREATE [ <replaceable>persistence_mode</replaceable> ] TABLE [ IF NOT EXISTS ] <
-      type <literal>TABLE</literal>. See <xref linkend="tableam"/> for more
-      information.  If this option is not specified, the default table access
+      type <literal>TABLE</literal>. See <xref linkend="tableam"/>.  If this
+      option is not specified, the default table access
@@ -151,3 +151,2 @@ CREATE [ <replaceable>persistence_mode</replaceable> ] TABLE [ IF NOT EXISTS ] <
-      see <xref linkend="sql-createtable-storage-parameters"/> in the
-      <xref linkend="sql-createtable"/> documentation for more
-      information.   For backward-compatibility the <literal>WITH</literal>
+      see <xref linkend="sql-createtable-storage-parameters"/>.   For
+      backward-compatibility the <literal>WITH</literal>
diff --git a/doc/src/sgml/ref/create_tablespace.sgml b/doc/src/sgml/ref/create_tablespace.sgml
index b77e774c53f..20aa40a64d5 100644
--- a/doc/src/sgml/ref/create_tablespace.sgml
+++ b/doc/src/sgml/ref/create_tablespace.sgml
@@ -56,2 +56,3 @@ CREATE TABLESPACE <replaceable class="parameter">tablespace_name</replaceable>
-    A tablespace cannot be used independently of the cluster in which it
-    is defined;  see <xref linkend="manage-ag-tablespaces"/>.
+    <xref linkend="manage-ag-tablespaces"/> cannot be used independently of the
+    cluster in which they
+    are defined.
diff --git a/doc/src/sgml/ref/create_trigger.sgml b/doc/src/sgml/ref/create_trigger.sgml
index bb1426f4970..cd047ea386e 100644
--- a/doc/src/sgml/ref/create_trigger.sgml
+++ b/doc/src/sgml/ref/create_trigger.sgml
@@ -223 +223 @@ CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER <replaceable class="parameter">name
-   Refer to <xref linkend="triggers"/> for more information about triggers.
+   See <xref linkend="triggers"/>.
@@ -590,3 +590,3 @@ UPDATE OF <replaceable>column_name1</replaceable> [, <replaceable>column_name2</
-   There are a few built-in trigger functions that can be used to
-   solve common problems without having to write your own trigger code;
-   see <xref linkend="functions-trigger"/>.
+   There are a few built-in <xref linkend="functions-trigger"/> that can be used
+   to
+   solve common problems without having to write your own trigger code.
@@ -679,2 +679 @@ CREATE TRIGGER paired_items_update
-   <xref linkend="trigger-example"/> contains a complete example of a trigger
-   function written in C.
+   <xref linkend="trigger-example"/> shows a trigger function written in C.
diff --git a/doc/src/sgml/ref/create_type.sgml b/doc/src/sgml/ref/create_type.sgml
index 994dfc65268..115059519fa 100644
--- a/doc/src/sgml/ref/create_type.sgml
+++ b/doc/src/sgml/ref/create_type.sgml
@@ -120,2 +120,2 @@ CREATE TYPE <replaceable class="parameter">name</replaceable>
-    The second form of <command>CREATE TYPE</command> creates an enumerated
-    (enum) type, as described in <xref linkend="datatype-enum"/>.
+    The second form of <command>CREATE TYPE</command> creates
+    <xref linkend="datatype-enum"/>.
@@ -135,2 +135,2 @@ CREATE TYPE <replaceable class="parameter">name</replaceable>
-    The third form of <command>CREATE TYPE</command> creates a new
-    range type, as described in <xref linkend="rangetypes"/>.
+    The third form of <command>CREATE TYPE</command> creates
+    <xref linkend="rangetypes"/>.
@@ -414,2 +414,2 @@ CREATE TYPE <replaceable class="parameter">name</replaceable>
-   can handle values that have been <firstterm>toasted</firstterm>, as described
-   in <xref linkend="storage-toast"/> and <xref linkend="xtypes-toast"/>.
+   can handle values that have been <firstterm>toasted</firstterm>
+   (see <xref linkend="storage-toast"/> and <xref linkend="xtypes-toast"/>).
@@ -471,2 +471,2 @@ CREATE TYPE <replaceable class="parameter">name</replaceable>
-   <literal>ELEMENT = int4</literal>.  For more details,
-   see <xref linkend="sql-createtype-array"/> below.
+   <literal>ELEMENT = int4</literal>.  See
+   <xref linkend="sql-createtype-array"/>.
diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml
index 2ccbe13f390..2047f434d33 100644
--- a/doc/src/sgml/ref/createdb.sgml
+++ b/doc/src/sgml/ref/createdb.sgml
@@ -114,3 +114 @@ PostgreSQL documentation
-        database. The character sets supported by the
-        <productname>PostgreSQL</productname> server are described in
-        <xref linkend="multibyte-charset-supported"/>.
+        database. See <xref linkend="multibyte-charset-supported"/>.
@@ -158,2 +156,2 @@ PostgreSQL documentation
-        Specifies the locale name when the builtin provider is used. Locale support
-        is described in <xref linkend="locale"/>.
+        Specifies the locale name when the builtin provider is used. See
+        <xref linkend="locale"/>.
@@ -395,2 +393 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/createuser.sgml b/doc/src/sgml/ref/createuser.sgml
index 0c061428514..46d5626c22e 100644
--- a/doc/src/sgml/ref/createuser.sgml
+++ b/doc/src/sgml/ref/createuser.sgml
@@ -480,2 +480 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/declare.sgml b/doc/src/sgml/ref/declare.sgml
index 5712825314e..1a5c524b4af 100644
--- a/doc/src/sgml/ref/declare.sgml
+++ b/doc/src/sgml/ref/declare.sgml
@@ -53,3 +53,3 @@ DECLARE <replaceable class="parameter">name</replaceable> [ BINARY ] [ ASENSITIV
-    If you are trying to use cursors inside a <application>PL/pgSQL</application>
-    function, the rules are different &mdash;
-    see <xref linkend="plpgsql-cursors"/>.
+    If you are trying to use <xref linkend="plpgsql-cursors"/> inside a
+    <application>PL/pgSQL</application>
+    function, the rules are different.
@@ -250,2 +250,2 @@ DECLARE <replaceable class="parameter">name</replaceable> [ BINARY ] [ ASENSITIV
-     results if they invoke any volatile functions (see <xref
-     linkend="xfunc-volatility"/>).  When a previously fetched row is
+     results if they invoke any volatile functions, as described in
+     <xref linkend="xfunc-volatility"/>.  When a previously fetched row is
diff --git a/doc/src/sgml/ref/delete.sgml b/doc/src/sgml/ref/delete.sgml
index 9066d7ea83d..1eff06f267b 100644
--- a/doc/src/sgml/ref/delete.sgml
+++ b/doc/src/sgml/ref/delete.sgml
@@ -114,2 +114,2 @@ DELETE FROM [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ *
-      query. See <xref linkend="queries-with"/> and <xref linkend="sql-select"/>
-      for details.
+      query. See <xref linkend="queries-with"/> and
+      <xref linkend="sql-select"/>.
diff --git a/doc/src/sgml/ref/drop_role.sgml b/doc/src/sgml/ref/drop_role.sgml
index cbcb3cd3d3e..d224dc887b1 100644
--- a/doc/src/sgml/ref/drop_role.sgml
+++ b/doc/src/sgml/ref/drop_role.sgml
@@ -46,2 +46 @@ DROP ROLE [ IF EXISTS ] <replaceable class="parameter">name</replaceable> [, ...
-   commands can be useful for this purpose; see <xref linkend="role-removal"/>
-   for more discussion.
+   commands can be useful for this purpose; see <xref linkend="role-removal"/>.
diff --git a/doc/src/sgml/ref/dropdb.sgml b/doc/src/sgml/ref/dropdb.sgml
index d36aed38c52..808c4461f1f 100644
--- a/doc/src/sgml/ref/dropdb.sgml
+++ b/doc/src/sgml/ref/dropdb.sgml
@@ -261,2 +261 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/dropuser.sgml b/doc/src/sgml/ref/dropuser.sgml
index b6be26d5b0a..4611fc422a9 100644
--- a/doc/src/sgml/ref/dropuser.sgml
+++ b/doc/src/sgml/ref/dropuser.sgml
@@ -239,2 +239 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/fetch.sgml b/doc/src/sgml/ref/fetch.sgml
index f0f3ac2a028..41e1450bc83 100644
--- a/doc/src/sgml/ref/fetch.sgml
+++ b/doc/src/sgml/ref/fetch.sgml
@@ -100,3 +100,3 @@ FETCH [ <replaceable class="parameter">direction</replaceable> ] [ FROM | IN ] <
-    If you are trying to use cursors inside a <application>PL/pgSQL</application>
-    function, the rules are different &mdash;
-    see <xref linkend="plpgsql-cursor-using"/>.
+    If you are trying to use <xref linkend="plpgsql-cursor-using"/> inside a
+    <application>PL/pgSQL</application>
+    function, the rules are different.
diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml
index 67426d42285..b0678ca68dd 100644
--- a/doc/src/sgml/ref/grant.sgml
+++ b/doc/src/sgml/ref/grant.sgml
@@ -204 +204 @@ GRANT <replaceable class="parameter">role_name</replaceable> [, ...] TO <replace
-       Specific types of privileges, as defined in <xref linkend="ddl-priv"/>.
+       Specific types of <xref linkend="ddl-priv"/>.
@@ -292,2 +292,2 @@ GRANT <replaceable class="parameter">role_name</replaceable> [, ...] TO <replace
-   of the new membership;  see <xref linkend="role-membership"/> for
-   details on inheritance.  If it is set to <literal>TRUE</literal>,
+   of the new membership;  see <xref linkend="role-membership"/>.  If it is set
+   to <literal>TRUE</literal>,
@@ -433,2 +433 @@ GRANT <replaceable class="parameter">role_name</replaceable> [, ...] TO <replace
-    See <xref linkend="ddl-priv"/> for more information about specific
-    privilege types, as well as how to inspect objects' privileges.
+    See <xref linkend="ddl-priv"/>.
diff --git a/doc/src/sgml/ref/initdb.sgml b/doc/src/sgml/ref/initdb.sgml
index bd0dbff8caa..5193455e373 100644
--- a/doc/src/sgml/ref/initdb.sgml
+++ b/doc/src/sgml/ref/initdb.sgml
@@ -57 +57 @@ PostgreSQL documentation
-   <xref linkend="manage-ag-templatedbs"/> for more details.
+   <xref linkend="manage-ag-templatedbs"/>.
@@ -97 +97,2 @@ PostgreSQL documentation
-   <literal>libc</literal> (see <xref linkend="locale-providers"/>). The
+   <literal>libc</literal>, as described in
+   <xref linkend="locale-providers"/>. The
@@ -129,2 +130 @@ PostgreSQL documentation
-   More details about locale settings can be found in <xref
-   linkend="locale"/>.
+   See <xref linkend="locale"/>.
@@ -152,2 +152,2 @@ PostgreSQL documentation
-        and <literal>local</literal> lines).  See <xref linkend="auth-pg-hba-conf"/>
-        for an overview of valid values.
+        and <literal>local</literal> lines).  See
+        <xref linkend="auth-pg-hba-conf"/>.
@@ -215,3 +215 @@ PostgreSQL documentation
-        it then. The character sets supported by the
-        <productname>PostgreSQL</productname> server are described in <xref
-        linkend="multibyte-charset-supported"/>.
+        it then. See <xref linkend="multibyte-charset-supported"/>.
@@ -247,2 +245,2 @@ PostgreSQL documentation
-        Specifies the ICU locale when the ICU provider is used. Locale support
-        is described in <xref linkend="locale"/>.
+        Specifies the ICU locale when the ICU provider is used. See
+        <xref linkend="locale"/>.
@@ -281 +279 @@ PostgreSQL documentation
-        See <xref linkend="checksums" /> for details.
+        See <xref linkend="checksums"/>.
@@ -292,2 +290,2 @@ PostgreSQL documentation
-        environment that <command>initdb</command> runs in. Locale
-        support is described in <xref linkend="locale"/>.
+        environment that <command>initdb</command> runs in. See
+        <xref linkend="locale"/>.
@@ -333,2 +331,2 @@ PostgreSQL documentation
-        Specifies the locale name when the builtin provider is used. Locale support
-        is described in <xref linkend="locale"/>.
+        Specifies the locale name when the builtin provider is used. See
+        <xref linkend="locale"/>.
@@ -346,2 +344,2 @@ PostgreSQL documentation
-        created.  The default is <literal>libc</literal> (see <xref
-        linkend="locale-providers"/>).
+        created.  The default is <literal>libc</literal>, as described in
+        <xref linkend="locale-providers"/>.
diff --git a/doc/src/sgml/ref/insert.sgml b/doc/src/sgml/ref/insert.sgml
index 121a9edcb99..f7f77ab44e4 100644
--- a/doc/src/sgml/ref/insert.sgml
+++ b/doc/src/sgml/ref/insert.sgml
@@ -83,2 +83,2 @@ INSERT INTO <replaceable class="parameter">table_name</replaceable> [ AS <replac
-   rows matching the unique index values being inserted;  the details
-   are covered in <xref linkend="index-unique-checks"/>.
+   rows matching the unique index values being inserted;  see
+   <xref linkend="index-unique-checks"/>.
@@ -87 +87 @@ INSERT INTO <replaceable class="parameter">table_name</replaceable> [ AS <replac
-   violation error. (See <xref linkend="sql-on-conflict"/> below.)
+   violation error. (See <xref linkend="sql-on-conflict"/>.)
@@ -160,2 +160,2 @@ INSERT INTO <replaceable class="parameter">table_name</replaceable> [ AS <replac
-        query. See <xref linkend="queries-with"/> and <xref linkend="sql-select"/>
-        for details.
+        query. See <xref linkend="queries-with"/> and
+        <xref linkend="sql-select"/>.
diff --git a/doc/src/sgml/ref/lock.sgml b/doc/src/sgml/ref/lock.sgml
index 070855da18b..a1b13672bb7 100644
--- a/doc/src/sgml/ref/lock.sgml
+++ b/doc/src/sgml/ref/lock.sgml
@@ -140 +140 @@ LOCK [ TABLE ] [ ONLY ] <replaceable class="parameter">name</replaceable> [ * ]
-      Lock modes are described in <xref linkend="explicit-locking"/>.
+      See <xref linkend="explicit-locking"/>.
@@ -214,3 +214,2 @@ LOCK [ TABLE ] [ ONLY ] <replaceable class="parameter">name</replaceable> [ * ]
-   acquire an actual row-level lock, see <xref linkend="locking-rows"/>
-   and <xref linkend="sql-for-update-share"/>
-   in the <xref linkend="sql-select"/> documentation.
+   acquire an actual row-level lock, see <xref linkend="locking-rows"/> and
+   <xref linkend="sql-for-update-share"/> in <xref linkend="sql-select"/>.
diff --git a/doc/src/sgml/ref/merge.sgml b/doc/src/sgml/ref/merge.sgml
index 765fe7a7d62..9bf728f01f8 100644
--- a/doc/src/sgml/ref/merge.sgml
+++ b/doc/src/sgml/ref/merge.sgml
@@ -158,2 +158,3 @@ MERGE INTO [ ONLY ] <replaceable class="parameter">target_table_name</replaceabl
-      query. See <xref linkend="queries-with"/> and <xref linkend="sql-select"/>
-      for details.  Note that <literal>WITH RECURSIVE</literal> is not supported
+      query. See <xref linkend="queries-with"/> and
+      <xref linkend="sql-select"/>.  Note that <literal>WITH RECURSIVE</literal>
+      is not supported
@@ -713,2 +714 @@ MERGE <replaceable class="parameter">total_count</replaceable>
-   apply; see <xref linkend="transaction-iso"/> for an explanation
-   on the behavior at each isolation level.
+   apply; see <xref linkend="transaction-iso"/>.
diff --git a/doc/src/sgml/ref/pg_amcheck.sgml b/doc/src/sgml/ref/pg_amcheck.sgml
index ef2bdfd19ae..d28c2019310 100644
--- a/doc/src/sgml/ref/pg_amcheck.sgml
+++ b/doc/src/sgml/ref/pg_amcheck.sgml
@@ -653,2 +653 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pg_basebackup.sgml b/doc/src/sgml/ref/pg_basebackup.sgml
index fecee08b0a5..b518d61214d 100644
--- a/doc/src/sgml/ref/pg_basebackup.sgml
+++ b/doc/src/sgml/ref/pg_basebackup.sgml
@@ -35,3 +35,2 @@ PostgreSQL documentation
-   both for point-in-time recovery (see <xref linkend="continuous-archiving"/>)
-   and as the starting point for a log-shipping or streaming-replication standby
-   server (see <xref linkend="warm-standby"/>).
+   both for <xref linkend="continuous-archiving"/>
+   and as the starting point for <xref linkend="warm-standby"/>.
@@ -50,3 +49,2 @@ PostgreSQL documentation
-   See <xref linkend="backup-incremental-backup" /> for more information
-   about incremental backups, and <xref linkend="backup-pitr-recovery" />
-   for steps to recover from a backup.
+   See <xref linkend="backup-incremental-backup"/> and
+   <xref linkend="backup-pitr-recovery"/>.
@@ -128 +126 @@ PostgreSQL documentation
-   See <xref linkend="basebackup-progress-reporting"/> for details.
+   See <xref linkend="basebackup-progress-reporting"/>.
@@ -953,2 +951 @@ PostgreSQL documentation
-   uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pg_combinebackup.sgml b/doc/src/sgml/ref/pg_combinebackup.sgml
index 9a6d201e0b8..063131d8b2a 100644
--- a/doc/src/sgml/ref/pg_combinebackup.sgml
+++ b/doc/src/sgml/ref/pg_combinebackup.sgml
@@ -329,2 +329 @@ PostgreSQL documentation
-   uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pg_createsubscriber.sgml b/doc/src/sgml/ref/pg_createsubscriber.sgml
index 3b3038d1891..a3aad5c7212 100644
--- a/doc/src/sgml/ref/pg_createsubscriber.sgml
+++ b/doc/src/sgml/ref/pg_createsubscriber.sgml
@@ -200,2 +200,2 @@ PostgreSQL documentation
-       The connection string to the publisher.  For details see <xref
-       linkend="libpq-connstring"/>.
+       The connection string to the publisher.  See
+       <xref linkend="libpq-connstring"/>.
diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml
index ae1bc14d2f2..0a4de968be7 100644
--- a/doc/src/sgml/ref/pg_dump.sgml
+++ b/doc/src/sgml/ref/pg_dump.sgml
@@ -46,2 +46,2 @@ PostgreSQL documentation
-   taking regular backups of production databases.  See <xref
-   linkend="backup"/> for further discussion.
+   taking regular backups of production databases.  See
+   <xref linkend="backup"/>.
@@ -283,2 +283,2 @@ PostgreSQL documentation
-        variable to the desired dump encoding.)  The supported encodings are
-        described in <xref linkend="multibyte-charset-supported"/>.
+        variable to the desired dump encoding.)  See
+        <xref linkend="multibyte-charset-supported"/>.
@@ -960,2 +960 @@ PostgreSQL documentation
-        Example files are listed below in the <xref linkend="pg-dump-examples"/>
-        section.
+        <xref linkend="pg-dump-examples"/> are listed below.
@@ -1323,3 +1322 @@ PostgreSQL documentation
-        <literal>serialization_failure</literal>.  See <xref linkend="mvcc"/>
-        for more information about transaction isolation and concurrency
-        control.
+        <literal>serialization_failure</literal>.  See <xref linkend="mvcc"/>.
@@ -1625,2 +1622 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pg_dumpall.sgml b/doc/src/sgml/ref/pg_dumpall.sgml
index 8834b7ec141..f8478ba7efb 100644
--- a/doc/src/sgml/ref/pg_dumpall.sgml
+++ b/doc/src/sgml/ref/pg_dumpall.sgml
@@ -65,2 +65,2 @@ PostgreSQL documentation
-  <filename>~/.pgpass</filename> file in such cases. See <xref
-  linkend="libpq-pgpass"/> for more information.
+  <filename>~/.pgpass</filename> file in such cases. See
+  <xref linkend="libpq-pgpass"/>.
@@ -865,2 +865 @@ exclude database <replaceable class="parameter">PATTERN</replaceable>
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pg_isready.sgml b/doc/src/sgml/ref/pg_isready.sgml
index ba25ca65a40..a44873c4c0d 100644
--- a/doc/src/sgml/ref/pg_isready.sgml
+++ b/doc/src/sgml/ref/pg_isready.sgml
@@ -160,2 +160 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pg_receivewal.sgml b/doc/src/sgml/ref/pg_receivewal.sgml
index 9e353a068e5..3308faf85f9 100644
--- a/doc/src/sgml/ref/pg_receivewal.sgml
+++ b/doc/src/sgml/ref/pg_receivewal.sgml
@@ -36,2 +36 @@ PostgreSQL documentation
-   location for doing a restore using point-in-time recovery (see
-   <xref linkend="continuous-archiving"/>).
+   location for doing a restore using <xref linkend="continuous-archiving"/>.
@@ -219 +218,2 @@ PostgreSQL documentation
-         replication slot (see <xref linkend="streaming-replication-slots"/>).
+         replication slot. See <xref linkend="streaming-replication-slots"/> for
+         more information.
@@ -482,2 +482 @@ PostgreSQL documentation
-   uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pg_recvlogical.sgml b/doc/src/sgml/ref/pg_recvlogical.sgml
index 5f76e424e26..083112be1f0 100644
--- a/doc/src/sgml/ref/pg_recvlogical.sgml
+++ b/doc/src/sgml/ref/pg_recvlogical.sgml
@@ -278,3 +278,2 @@ PostgreSQL documentation
-        plugin. See <xref linkend="logicaldecoding-output-plugin"/> for
-        information about the plugins <productname>PostgreSQL</productname>
-        provides. The default is <xref linkend="test-decoding"/>.
+        plugin. See <xref linkend="logicaldecoding-output-plugin"/>. The default
+        is <xref linkend="test-decoding"/>.
@@ -480,2 +479 @@ PostgreSQL documentation
-   uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml
index b6c5299c36e..540ab1b0ad1 100644
--- a/doc/src/sgml/ref/pg_restore.sgml
+++ b/doc/src/sgml/ref/pg_restore.sgml
@@ -1062,2 +1062 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).  However, it does not read
+   also uses <xref linkend="libpq-envars"/>.  However, it does not read
@@ -1163,3 +1162,2 @@ CREATE DATABASE foo WITH TEMPLATE template0;
-   optimizer has useful statistics; see <xref
-   linkend="vacuum-for-statistics"/> and <xref linkend="autovacuum"/> for more
-   information.
+   optimizer has useful statistics; see <xref linkend="vacuum-for-statistics"/>
+   and <xref linkend="autovacuum"/>.
diff --git a/doc/src/sgml/ref/pg_rewind.sgml b/doc/src/sgml/ref/pg_rewind.sgml
index f704dc108e6..ce205f7b461 100644
--- a/doc/src/sgml/ref/pg_rewind.sgml
+++ b/doc/src/sgml/ref/pg_rewind.sgml
@@ -352,2 +352,2 @@ PostgreSQL documentation
-   <application>pg_rewind</application> also uses the environment variables
-   supported by <application>libpq</application> (see <xref linkend="libpq-envars"/>).
+   <application>pg_rewind</application> also uses
+   <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/pgarchivecleanup.sgml b/doc/src/sgml/ref/pgarchivecleanup.sgml
index 79e751381ac..e998563982b 100644
--- a/doc/src/sgml/ref/pgarchivecleanup.sgml
+++ b/doc/src/sgml/ref/pgarchivecleanup.sgml
@@ -37 +37 @@ PostgreSQL documentation
-  running as a standby server (see <xref linkend="warm-standby"/>).
+  running as <xref linkend="warm-standby"/>.
diff --git a/doc/src/sgml/ref/pgbench.sgml b/doc/src/sgml/ref/pgbench.sgml
index 2e401d1ceb8..03332b3772e 100644
--- a/doc/src/sgml/ref/pgbench.sgml
+++ b/doc/src/sgml/ref/pgbench.sgml
@@ -72,2 +72,2 @@ tps = 896.967014 (without initial connection time)
-  serialization or deadlock errors (see <xref linkend="failures-and-retries"/>
-  for more information).
+  serialization or deadlock errors.
+  See <xref linkend="failures-and-retries"/> for more information.
@@ -79,2 +79,2 @@ tps = 896.967014 (without initial connection time)
-  The next line reports the number of failed transactions (see
-  <xref linkend="failures-and-retries"/> for more information).
+  The next line reports the number of failed transactions.
+  See <xref linkend="failures-and-retries"/> for more information.
@@ -542,2 +542 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
-        <xref linkend="failures-and-retries"/> for more information about
-        retrying such transactions.
+        <xref linkend="failures-and-retries"/>.
@@ -771 +770 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
-        See <xref linkend="failures-and-retries"/> for more information.
+        See <xref linkend="failures-and-retries"/>.
@@ -794 +793 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
-        See <xref linkend="failures-and-retries"/> for more information.
+        See <xref linkend="failures-and-retries"/>.
@@ -816 +815 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
-        See <xref linkend="failures-and-retries"/> for more information.
+        See <xref linkend="failures-and-retries"/>.
@@ -842,2 +841 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
-        errors are not retried. See <xref linkend="failures-and-retries"/>
-        for more information about retrying such transactions.
+        errors are not retried. See <xref linkend="failures-and-retries"/>.
@@ -934 +932 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
-        See <xref linkend="failures-and-retries"/> for more information.
+        See <xref linkend="failures-and-retries"/>.
@@ -1052,2 +1050 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
-   uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   uses <xref linkend="libpq-envars"/>.
@@ -1421 +1418 @@ SELECT 4 AS four \; SELECT 5 AS five \aset
-        <xref linkend="libpq-pipeline-mode"/> for more details.
+        <xref linkend="libpq-pipeline-mode"/>.
@@ -2435 +2432 @@ END;
-   <xref linkend="failures-and-retries"/> for more information).
+   <xref linkend="failures-and-retries"/>).
@@ -2711 +2708 @@ END;
-         <xref linkend="failures-and-retries"/> for more information.
+         <xref linkend="failures-and-retries"/>.
@@ -2717 +2714 @@ END;
-         statement. See <xref linkend="failures-and-retries"/> for more information.
+         statement. See <xref linkend="failures-and-retries"/>.
@@ -2968 +2965 @@ statement latencies in milliseconds, failures and retries:
-   the command line (See <xref linkend="config-setting-shell"/>).
+   the command line; see <xref linkend="config-setting-shell"/>.
diff --git a/doc/src/sgml/ref/pgupgrade.sgml b/doc/src/sgml/ref/pgupgrade.sgml
index 38ca09b423c..157bd107f7d 100644
--- a/doc/src/sgml/ref/pgupgrade.sgml
+++ b/doc/src/sgml/ref/pgupgrade.sgml
@@ -499,2 +499 @@ make prefix=/usr/local/pgsql.new install
-     in <filename>pg_hba.conf</filename> or use a <filename>~/.pgpass</filename> file
-     (see <xref linkend="libpq-pgpass"/>).
+     in <filename>pg_hba.conf</filename> or use <xref linkend="libpq-pgpass"/>.
diff --git a/doc/src/sgml/ref/postgres-ref.sgml b/doc/src/sgml/ref/postgres-ref.sgml
index b13a16a117f..e6d7f91fb23 100644
--- a/doc/src/sgml/ref/postgres-ref.sgml
+++ b/doc/src/sgml/ref/postgres-ref.sgml
@@ -121,3 +121,2 @@ PostgreSQL documentation
-        Sets a named run-time parameter. The configuration parameters
-        supported by <productname>PostgreSQL</productname> are
-        described in <xref linkend="runtime-config"/>. Most of the
+        Sets a named run-time parameter. See <xref linkend="runtime-config"/>.
+        Most of the
@@ -180 +179 @@ PostgreSQL documentation
-        <xref linkend="runtime-config-file-locations"/> for details.
+        <xref linkend="runtime-config-file-locations"/>.
@@ -272,2 +271 @@ PostgreSQL documentation
-        available. For more information on using <acronym>SSL</acronym>,
-        refer to <xref linkend="ssl-tcp"/>.
+        available. See <xref linkend="ssl-tcp"/>.
@@ -491,2 +489,2 @@ PostgreSQL documentation
-     The following options only apply to the single-user mode
-     (see <xref linkend="app-postgres-single-user"/> below).
+     The following options only apply to
+     <xref linkend="app-postgres-single-user"/>.
@@ -606,2 +604,2 @@ PostgreSQL documentation
-    kernel to provide adequate shared memory and semaphores.  For more
-    discussion see <xref linkend="kernel-resources"/>.  You might be able
+    kernel to provide adequate shared memory and semaphores.  See
+    <xref linkend="kernel-resources"/>.  You might be able
@@ -687,2 +685 @@ PostgreSQL documentation
-   in <xref linkend="functions-admin-signal"/> for the SQL-callable equivalents
-   of these two actions.
+   in <xref linkend="functions-admin-signal"/>.
diff --git a/doc/src/sgml/ref/prepare_transaction.sgml b/doc/src/sgml/ref/prepare_transaction.sgml
index f4f6118ac31..630f5f37aab 100644
--- a/doc/src/sgml/ref/prepare_transaction.sgml
+++ b/doc/src/sgml/ref/prepare_transaction.sgml
@@ -130,2 +130,3 @@ PREPARE TRANSACTION <replaceable class="parameter">transaction_id</replaceable>
-    to prevent transaction ID wraparound (see <xref
-    linkend="vacuum-for-wraparound"/>).  Keep in mind also that the transaction
+    to prevent transaction ID wraparound.
+    See <xref linkend="vacuum-for-wraparound"/> for more information.
+    Keep in mind also that the transaction
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 7c05afd4719..1e91f94882a 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -128,2 +128 @@ echo '\x \\ SELECT * FROM foo;' | psql
-       transactions.  (See <xref linkend="protocol-flow-multi-statement"/>
-       for more details about how the server handles multi-query strings.)
+       transactions.  (See <xref linkend="protocol-flow-multi-statement"/>.)
@@ -675,2 +674,2 @@ EOF
-    values. (For additional environment variables, see <xref
-    linkend="libpq-envars"/>.) It is also convenient to have a
+    values. (See also <xref linkend="libpq-envars"/>.) It is also convenient to
+    have a
@@ -678 +677 @@ EOF
-    passwords. See <xref linkend="libpq-pgpass"/> for more information.
+    passwords. See <xref linkend="libpq-pgpass"/>.
@@ -691,2 +690 @@ $ <userinput>psql postgresql://dbmaster:5433/mydb?sslmode=require</userinput>
-     This way you can also use <acronym>LDAP</acronym> for connection
-     parameter lookup as described in <xref linkend="libpq-ldap"/>.
+     This way you can also use <xref linkend="libpq-ldap"/>.
@@ -914,2 +912,2 @@ INSERT INTO tbl1 VALUES ($1, $2) \bind 'first value' 'second value' \g
-         This command causes the extended query protocol (see <xref
-         linkend="protocol-query-concepts"/>) to be used, unlike normal
+         This command causes <xref linkend="protocol-query-concepts"/> to be
+         used, unlike normal
@@ -947,2 +945,2 @@ INSERT INTO tbls1 VALUES ($1, $2) \parse stmt1
-         This command causes the extended query protocol (see
-         <xref linkend="protocol-query-concepts"/>) to be used, unlike normal
+         This command causes <xref linkend="protocol-query-concepts"/> to be
+         used, unlike normal
@@ -965,2 +963,2 @@ INSERT INTO tbls1 VALUES ($1, $2) \parse stmt1
-        connection string as detailed in
-        <xref linkend="libpq-connstring"/>.  If no arguments are given, a
+        connection string (see <xref linkend="libpq-connstring"/>).  If no
+        arguments are given, a
@@ -1400,2 +1398 @@ SELECT $1 \parse stmt1
-        Lists operator classes
-        (see <xref linkend="xindex-opclass"/>).
+        Lists <xref linkend="xindex-opclass"/>.
@@ -1425,2 +1422 @@ SELECT $1 \parse stmt1
-        Lists operator families
-        (see <xref linkend="xindex-opfamily"/>).
+        Lists <xref linkend="xindex-opfamily"/>.
@@ -1477,2 +1473,2 @@ SELECT $1 \parse stmt1
-        Lists support functions associated with operator families
-        (see <xref linkend="xindex-support"/>).
+        Lists <xref linkend="xindex-support"/> associated with operator
+        families.
@@ -1637,2 +1633,2 @@ SELECT $1 \parse stmt1
-        privileges.  The meaning of the privilege display is explained in
-        <xref linkend="ddl-priv"/>.
+        privileges.  See <xref linkend="ddl-priv"/> for the meaning of the
+        privilege display.
@@ -2007,3 +2003,2 @@ SELECT $1 \parse stmt1
-        commands are used to set access privileges.  The meaning of the
-        privilege display is explained in
-        <xref linkend="ddl-priv"/>.
+        commands are used to set access privileges.  See
+        <xref linkend="ddl-priv"/> for the meaning of the privilege display.
@@ -3748 +3743 @@ testdb=&gt; <userinput>\setenv LESS -imx4F</userinput>
-        See <xref linkend="libpq-pipeline-mode"/> for more details.
+        See <xref linkend="libpq-pipeline-mode"/>.
@@ -4046,2 +4041 @@ SELECT 1\; SELECT 2\; SELECT 3;
-        transactions.  (See <xref linkend="protocol-flow-multi-statement"/>
-        for more details about how the server handles multi-query strings.)
+        transactions.  (See <xref linkend="protocol-flow-multi-statement"/>.)
@@ -4786 +4780 @@ bar
-         The error code (see <xref linkend="errcodes-appendix"/>) associated
+         <xref linkend="errcodes-appendix"/> associated
@@ -5439,2 +5433 @@ PSQL_EDITOR_LINENUMBER_ARG='--line '
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/reindex.sgml b/doc/src/sgml/ref/reindex.sgml
index 185cd75ca30..db5ef2b799a 100644
--- a/doc/src/sgml/ref/reindex.sgml
+++ b/doc/src/sgml/ref/reindex.sgml
@@ -174 +174 @@ REINDEX [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] { DA
-      &mdash; see <xref linkend="sql-reindex-concurrently"/> below.
+      &mdash; see <xref linkend="sql-reindex-concurrently"/>.
@@ -514 +514 @@ Indexes:
-    <xref linkend="create-index-progress-reporting"/> for details.
+    <xref linkend="create-index-progress-reporting"/>.
diff --git a/doc/src/sgml/ref/reindexdb.sgml b/doc/src/sgml/ref/reindexdb.sgml
index a90e48ea86b..aa39fc57ec2 100644
--- a/doc/src/sgml/ref/reindexdb.sgml
+++ b/doc/src/sgml/ref/reindexdb.sgml
@@ -403,2 +403 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/revoke.sgml b/doc/src/sgml/ref/revoke.sgml
index 618a204c36f..3671e267881 100644
--- a/doc/src/sgml/ref/revoke.sgml
+++ b/doc/src/sgml/ref/revoke.sgml
@@ -298,2 +298 @@ REVOKE [ { ADMIN | INHERIT | SET } OPTION FOR ]
-    See <xref linkend="ddl-priv"/> for more information about specific
-    privilege types, as well as how to inspect objects' privileges.
+    See <xref linkend="ddl-priv"/>.
diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml
index 09b6ce809bb..21528f04cc6 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -103 +103 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      (See <xref linkend="sql-with"/> below.)
+      (See <xref linkend="sql-with"/>.)
@@ -113 +113 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      (See <xref linkend="sql-from"/> below.)
+      (See <xref linkend="sql-from"/>.)
@@ -121 +121 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      output.  (See <xref linkend="sql-where"/> below.)
+      output.  (See <xref linkend="sql-where"/>.)
@@ -133,2 +133 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      <xref linkend="sql-groupby"/> and
-      <xref linkend="sql-having"/> below.)
+      <xref linkend="sql-groupby"/> and <xref linkend="sql-having"/>.)
@@ -145 +144 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      row or row group.  (See <xref linkend="sql-select-list"/> below.)
+      row or row group.  (See <xref linkend="sql-select-list"/>.)
@@ -154 +153 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      duplicates.  (See <xref linkend="sql-distinct"/> below.)
+      duplicates.  (See <xref linkend="sql-distinct"/>.)
@@ -176 +175 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      <xref linkend="sql-except"/> below.)
+      <xref linkend="sql-except"/>.)
@@ -186 +185 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      <xref linkend="sql-orderby"/> below.)
+      <xref linkend="sql-orderby"/>.)
@@ -194,2 +193,2 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      only returns a subset of the result rows. (See <xref
-      linkend="sql-limit"/> below.)
+      only returns a subset of the result rows. (See
+      <xref linkend="sql-limit"/>.)
@@ -205,2 +204 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-      against concurrent updates.  (See <xref linkend="sql-for-update-share"/>
-      below.)
+      against concurrent updates.  (See <xref linkend="sql-for-update-share"/>.)
@@ -317,2 +315,2 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
-    used internally for tracking visited rows.  See <xref
-    linkend="queries-with-cycle"/> for examples.
+    used internally for tracking visited rows.  See
+    <xref linkend="queries-with-cycle"/>.
@@ -879,2 +877 @@ GROUP BY { ALL | [ ALL | DISTINCT ] <replaceable class="parameter">grouping_elem
-    For further details on the handling
-    of grouping sets see <xref linkend="queries-grouping-sets"/>.
+    See <xref linkend="queries-grouping-sets"/>.
@@ -1157,2 +1154 @@ EXCLUDE NO OTHERS
-    Window functions are described in detail in
-    <xref linkend="tutorial-window"/>,
+    See <xref linkend="tutorial-window"/>,
@@ -1185,2 +1181,2 @@ EXCLUDE NO OTHERS
-    <productname>PostgreSQL</productname> keyword (see <xref
-    linkend="sql-keywords-appendix"/>).  For protection against possible
+    <productname>PostgreSQL</productname> keyword, as listed in
+    <xref linkend="sql-keywords-appendix"/>.  For protection against possible
@@ -1528 +1524 @@ SELECT name FROM distributors ORDER BY code;
-    For more information see <xref linkend="sql-syntax-collate-exprs"/> and
+    See <xref linkend="sql-syntax-collate-exprs"/> and
@@ -1650,2 +1646 @@ KEY SHARE
-    in the <literal>FROM</literal> clause.  For more information on each
-    row-level lock mode, refer to <xref linkend="locking-rows"/>.
+    in the <literal>FROM</literal> clause.  See <xref linkend="locking-rows"/>.
@@ -2210,2 +2205,2 @@ SELECT 2+2;
-    ...</literal> for the same functionality, as shown above
-    in <xref linkend="sql-limit"/>.  This
+    ...</literal> for the same functionality, as shown in
+    <xref linkend="sql-limit"/>.  This
diff --git a/doc/src/sgml/ref/select_into.sgml b/doc/src/sgml/ref/select_into.sgml
index cbf865ff838..9ed19c65cf2 100644
--- a/doc/src/sgml/ref/select_into.sgml
+++ b/doc/src/sgml/ref/select_into.sgml
@@ -138,2 +138,2 @@ SELECT * INTO films_recent FROM films WHERE date_prod &gt;= '2002-01-01';
-   in <application>ECPG</application> (see <xref linkend="ecpg"/>) and
-   <application>PL/pgSQL</application> (see <xref linkend="plpgsql"/>).
+   in <xref linkend="ecpg"/> and
+   <xref linkend="plpgsql"/>.
diff --git a/doc/src/sgml/ref/set.sgml b/doc/src/sgml/ref/set.sgml
index 16c7e9a7b26..7ce6d767b3f 100644
--- a/doc/src/sgml/ref/set.sgml
+++ b/doc/src/sgml/ref/set.sgml
@@ -261,2 +261 @@ SELECT setseed(<replaceable>value</replaceable>);
-       see <xref linkend="datatype-timezones"/> for more information
-       about time zones.
+       see <xref linkend="datatype-timezones"/> for more information.
diff --git a/doc/src/sgml/ref/set_transaction.sgml b/doc/src/sgml/ref/set_transaction.sgml
index 727a92757e8..c7c131e2e34 100644
--- a/doc/src/sgml/ref/set_transaction.sgml
+++ b/doc/src/sgml/ref/set_transaction.sgml
@@ -127,2 +127 @@ SET SESSION CHARACTERISTICS AS TRANSACTION <replaceable class="parameter">transa
-   <xref linkend="mvcc"/> for more information about transaction
-   isolation and concurrency control.
+   <xref linkend="mvcc"/>.
@@ -215,2 +214,2 @@ SET SESSION CHARACTERISTICS AS TRANSACTION <replaceable class="parameter">transa
-   <command>ALTER DATABASE</command>, etc.  Consult <xref linkend="runtime-config"/>
-   for more information.
+   <command>ALTER DATABASE</command>, etc.  See
+   <xref linkend="runtime-config"/>.
diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml
index 38ee973ea05..b0d36e2c9de 100644
--- a/doc/src/sgml/ref/vacuum.sgml
+++ b/doc/src/sgml/ref/vacuum.sgml
@@ -198,2 +198,3 @@ VACUUM [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <re
-      quickly as possible to avoid imminent transaction ID wraparound
-      (see <xref linkend="vacuum-for-wraparound"/>).  However, the
+      quickly as possible to avoid imminent transaction ID wraparound.
+      See <xref linkend="vacuum-for-wraparound"/> for more information.
+      However, the
@@ -484,2 +485 @@ VACUUM [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <re
-    worker.  See <xref linkend="runtime-config-resource-vacuum-cost"/> for
-    details.
+    worker.  See <xref linkend="runtime-config-resource-vacuum-cost"/>.
@@ -495 +495 @@ VACUUM [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <re
-    <xref linkend="cluster-progress-reporting"/> for details.
+    <xref linkend="cluster-progress-reporting"/>.
diff --git a/doc/src/sgml/ref/vacuumdb.sgml b/doc/src/sgml/ref/vacuumdb.sgml
index 508c8dfa146..b230b360551 100644
--- a/doc/src/sgml/ref/vacuumdb.sgml
+++ b/doc/src/sgml/ref/vacuumdb.sgml
@@ -255,2 +255,2 @@ PostgreSQL documentation
-        multixact ID wraparound (see
-        <xref linkend="vacuum-for-multixact-wraparound"/>).
+        multixact ID wraparound; see
+        <xref linkend="vacuum-for-multixact-wraparound"/>.
@@ -277 +277,2 @@ PostgreSQL documentation
-        ID wraparound (see <xref linkend="vacuum-for-wraparound"/>).
+        ID wraparound. See <xref linkend="vacuum-for-wraparound"/> for more
+        information.
@@ -640,2 +641 @@ PostgreSQL documentation
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses <xref linkend="libpq-envars"/>.
diff --git a/doc/src/sgml/ref/values.sgml b/doc/src/sgml/ref/values.sgml
index 4bf7bfdffee..bb0aaf8b938 100644
--- a/doc/src/sgml/ref/values.sgml
+++ b/doc/src/sgml/ref/values.sgml
@@ -46,2 +46,2 @@ VALUES ( <replaceable class="parameter">expression</replaceable> [, ...] ) [, ..
-   appearing in that column, using the same rules as for <literal>UNION</literal>
-   (see <xref linkend="typeconv-union-case"/>).
+   appearing in that column, using the same rules as for
+   <xref linkend="typeconv-union-case"/>.
diff --git a/doc/src/sgml/regress.sgml b/doc/src/sgml/regress.sgml
index c74941bfbf2..cb3693ff83f 100644
--- a/doc/src/sgml/regress.sgml
+++ b/doc/src/sgml/regress.sgml
@@ -102,2 +102,2 @@ make MAX_CONNECTIONS=10 check
-   To run the tests after installation (see <xref linkend="installation"/>),
-   initialize a data directory and start the
+   To run the tests after <xref linkend="installation"/>, initialize a data
+   directory and start the
@@ -259,2 +259 @@ make check-world -j8 >/dev/null
-   Some of these auxiliary test suites use the TAP infrastructure explained
-   in <xref linkend="regress-tap"/>.
+   Some of these auxiliary test suites use <xref linkend="regress-tap"/>.
@@ -640,3 +639,3 @@ make check EXTRA_TESTS=numeric_big
-    the result is valid, you can add a new comparison file to silence
-    the failure report in future test runs.  See
-    <xref linkend="regress-variant"/> for details.
+    the result is valid, you can add new
+    <xref linkend="regress-variant"/> to silence
+    the failure report in future test runs.
diff --git a/doc/src/sgml/replication-origins.sgml b/doc/src/sgml/replication-origins.sgml
index bb0fb624d25..a8b0f6f4599 100644
--- a/doc/src/sgml/replication-origins.sgml
+++ b/doc/src/sgml/replication-origins.sgml
@@ -86 +86 @@
-  output plugin callbacks (see <xref linkend="logicaldecoding-output-plugin"/>)
+  <xref linkend="logicaldecoding-output-plugin"/>
diff --git a/doc/src/sgml/rowtypes.sgml b/doc/src/sgml/rowtypes.sgml
index 0d2c1721ff3..c3e917b7005 100644
--- a/doc/src/sgml/rowtypes.sgml
+++ b/doc/src/sgml/rowtypes.sgml
@@ -132,2 +132 @@ CREATE TABLE inventory_item (
-   the generic type constants discussed in <xref
-   linkend="sql-syntax-constants-generic"/>.  The constant is initially
+   <xref linkend="sql-syntax-constants-generic"/>.  The constant is initially
@@ -155,2 +154 @@ ROW('', 42, NULL)
-  The <literal>ROW</literal> expression syntax is discussed in more detail in <xref
-  linkend="sql-syntax-row-constructors"/>.
+  For more detail, see <xref linkend="sql-syntax-row-constructors"/>.
diff --git a/doc/src/sgml/rules.sgml b/doc/src/sgml/rules.sgml
index 7f23962f524..368c384377e 100644
--- a/doc/src/sgml/rules.sgml
+++ b/doc/src/sgml/rules.sgml
@@ -309,2 +309 @@ CREATE RULE "_RETURN" AS ON SELECT TO myview DO INSTEAD
-    despite its lack of underlying storage.
-    This is discussed further below, in
+    despite its lack of underlying storage; see
@@ -861,2 +860,2 @@ SELECT t1.a, t2.b, t1.ctid FROM t1, t2 WHERE t1.a = t2.a;
-    that updates one or more tables, rather than views. That is the topic
-    of <xref linkend="rules-update"/>.  Note that this will not work with
+    that updates one or more tables, rather than views
+    (see <xref linkend="rules-update"/>).  Note that this will not work with
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index dfa292c2c3a..6d0a3813831 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -82 +82 @@
-   information about creating new databases within a cluster.)
+   more information.)
@@ -137,2 +137 @@
-   using <command>pg_ctl</command> for starting and stopping the
-   server (see <xref linkend="server-start"/>), so
+   using <command>pg_ctl</command> for <xref linkend="server-start"/>, so
@@ -193 +192,2 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput>
-   client authentication setup allows any local user to connect to the
+   <xref linkend="client-authentication"/> setup allows any local user to
+   connect to the
@@ -208,2 +208 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput>
-   or file system permissions to restrict connections. See <xref
-   linkend="client-authentication"/> for more information.)
+   or file system permissions to restrict connections.)
@@ -217,2 +216,2 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput>
-   specify a different locale for the database; more information about
-   that can be found in <xref linkend="locale"/>.  The default sort order used
+   specify a different locale for the database; for more information,
+   see <xref linkend="locale"/>.  The default sort order used
@@ -231 +230 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput>
-   locale setting.  For details see <xref linkend="multibyte"/>.
+   locale setting; for more information, see <xref linkend="multibyte"/>.
@@ -380,2 +379 @@ $ <userinput>postgres -D /usr/local/pgsql/data &gt;logfile 2&gt;&amp;1 &amp;</us
-   linkend="logfile-maintenance"/> for a more thorough discussion of log
-   file handling.)
+   linkend="logfile-maintenance"/> for more information.)
@@ -726 +724,2 @@ psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such
-    the server will refuse to start and
+    the server will refuse to start (see <xref
+    linkend="server-start-failures"/>) and
@@ -728,2 +727 @@ psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such
-    and what to do about it. (See also <xref
-    linkend="server-start-failures"/>.) The relevant kernel
+    and what to do about it. The relevant kernel
@@ -1690,2 +1688,2 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput
-   All user-visible changes are listed in the release notes (<xref
-   linkend="release"/>);  pay particular attention to the section
+   All user-visible changes are listed in <xref
+   linkend="release"/>;  pay particular attention to the section
@@ -2370,3 +2368,2 @@ pg_dumpall -p 5432 | psql -d postgres -p 5433
-   Note that certificate chain validation is always ensured when the
-   <literal>cert</literal> authentication method is used
-   (see <xref linkend="auth-cert"/>).
+   Note that <xref linkend="auth-cert"/> always ensures certificate chain
+   validation.
@@ -2398,2 +2395,2 @@ pg_dumpall -p 5432 | psql -d postgres -p 5433
-   The first approach makes use of the <literal>cert</literal> authentication
-   method for <literal>hostssl</literal> entries in <filename>pg_hba.conf</filename>,
+   The first approach makes use of <xref linkend="auth-cert"/> for
+   <literal>hostssl</literal> entries in <filename>pg_hba.conf</filename>,
@@ -2401 +2398 @@ pg_dumpall -p 5432 | psql -d postgres -p 5433
-   providing ssl connection security. See <xref linkend="auth-cert"/> for details.
+   providing ssl connection security.
@@ -2762,2 +2759 @@ openssl x509 -req -in server.csr -text -days 365 \
-    that which is necessary for GSSAPI authentication.  (For more information
-    on configuring that, see <xref linkend="gssapi-auth"/>.)
+    that which is necessary for <xref linkend="gssapi-auth"/>.
diff --git a/doc/src/sgml/sepgsql.sgml b/doc/src/sgml/sepgsql.sgml
index ddac6253557..7250c3b892c 100644
--- a/doc/src/sgml/sepgsql.sgml
+++ b/doc/src/sgml/sepgsql.sgml
@@ -19,3 +19,3 @@
-     The current implementation has significant limitations, and does not
-     enforce mandatory access control for all actions.  See
-     <xref linkend="sepgsql-limitations"/>.
+     The current implementation has significant
+     <xref linkend="sepgsql-limitations"/>, and does not
+     enforce mandatory access control for all actions.
diff --git a/doc/src/sgml/sources.sgml b/doc/src/sgml/sources.sgml
index 760f9b69d47..e5fe1bf68fb 100644
--- a/doc/src/sgml/sources.sgml
+++ b/doc/src/sgml/sources.sgml
@@ -436,2 +436 @@ ereport(level, errmsg_internal("format string", ...));
-    Advice about writing good error messages can be found in
-    <xref linkend="error-style-guide"/>.
+    For more information, see <xref linkend="error-style-guide"/>.
diff --git a/doc/src/sgml/spgist.sgml b/doc/src/sgml/spgist.sgml
index 6af93719b84..ebc0db0ed46 100644
--- a/doc/src/sgml/spgist.sgml
+++ b/doc/src/sgml/spgist.sgml
@@ -235,3 +235,3 @@
-  value.  (Alternatively, an operator class can omit the node labels, if it
-  works with a fixed set of nodes for all inner tuples;
-  see <xref linkend="spgist-null-labels"/>.)
+  value.  (Alternatively, an operator class can omit
+  <xref linkend="spgist-null-labels"/>,
+  if it works with a fixed set of nodes for all inner tuples.)
@@ -614 +614,2 @@ typedef struct spgPickSplitOut
-       <literal>allTheSame</literal> to signify that this has happened.  The
+       <literal>allTheSame</literal> to signify that this has happened; see
+       <xref linkend="spgist-all-the-same"/> for more information.  The
@@ -617 +617,0 @@ typedef struct spgPickSplitOut
-       See <xref linkend="spgist-all-the-same"/> for more information.
diff --git a/doc/src/sgml/start.sgml b/doc/src/sgml/start.sgml
index 0263a700591..3e1c4383c77 100644
--- a/doc/src/sgml/start.sgml
+++ b/doc/src/sgml/start.sgml
@@ -33 +33 @@
-    for instructions on installation, and return to
+    and return to
diff --git a/doc/src/sgml/storage.sgml b/doc/src/sgml/storage.sgml
index 6b6377503bf..25514c7da21 100644
--- a/doc/src/sgml/storage.sgml
+++ b/doc/src/sgml/storage.sgml
@@ -209,2 +209,2 @@ is the filenode number.  In either case, in addition to the main file (a/k/a
-main fork), each table and index has a <firstterm>free space map</firstterm> (see <xref
-linkend="storage-fsm"/>), which stores information about free space available in
+main fork), each table and index has a <xref linkend="storage-fsm"/>, which
+stores information about free space available in
@@ -213,5 +213,7 @@ number plus the suffix <literal>_fsm</literal>.  Tables also have a
-<firstterm>visibility map</firstterm>, stored in a fork with the suffix <literal>_vm</literal>,
-to track which pages are known to have no dead tuples.  The visibility map is
-described further in <xref linkend="storage-vm"/>.  Unlogged tables and indexes
-have a third fork, known as the initialization fork, which is stored in a fork
-with the suffix <literal>_init</literal> (see <xref linkend="storage-init"/>).
+<xref linkend="storage-vm"/>, stored in a fork with the suffix
+<literal>_vm</literal>,
+to track which pages are known to have no dead tuples.  Unlogged tables and
+indexes
+have a third fork, known as <xref linkend="storage-init"/>,
+which is stored in a fork
+with the suffix <literal>_init</literal>.
@@ -249 +251,2 @@ A table that has columns with potentially large entries will have an
-associated <firstterm>TOAST</firstterm> table, which is used for out-of-line storage of
+associated <xref linkend="storage-toast"/> table, which is used for out-of-line
+storage of
@@ -253 +255,0 @@ its <acronym>TOAST</acronym> table, if any.
-See <xref linkend="storage-toast"/> for more information.
@@ -399 +401 @@ when a tuple to be stored on disk is too large to be stored as-is.
-Further details appear in <xref linkend="storage-toast-ondisk"/>.
+see <xref linkend="storage-toast-ondisk"/>.
@@ -401 +403,2 @@ Alternatively, a <acronym>TOAST</acronym> pointer datum can contain a pointer to
-out-of-line data that appears elsewhere in memory.  Such datums are
+out-of-line data that appears elsewhere in memory, as described in
+<xref linkend="storage-toast-inmemory"/>.  Such datums are
@@ -404 +406,0 @@ useful for avoiding copying and redundant processing of large data values.
-Further details appear in <xref linkend="storage-toast-inmemory"/>.
@@ -1073,2 +1075,2 @@ data. Empty in ordinary tables.</entry>
-  inline or in a <acronym>TOAST</acronym> table;
-  it might be compressed, too (see <xref linkend="storage-toast"/>).
+  inline or in a <xref linkend="storage-toast"/> table;
+  it might be compressed, too.
diff --git a/doc/src/sgml/stylesheet-common.xsl b/doc/src/sgml/stylesheet-common.xsl
index a2e3db67a32..437073bf725 100644
--- a/doc/src/sgml/stylesheet-common.xsl
+++ b/doc/src/sgml/stylesheet-common.xsl
@@ -44 +44 @@
-<xsl:param name="xref.with.number.and.title" select="0"></xsl:param>
+<xsl:param name="xref.with.number.and.title" select="1"></xsl:param>
diff --git a/doc/src/sgml/stylesheet-html-common.xsl b/doc/src/sgml/stylesheet-html-common.xsl
index 9dcf96c02e5..f5dc440f0ef 100644
--- a/doc/src/sgml/stylesheet-html-common.xsl
+++ b/doc/src/sgml/stylesheet-html-common.xsl
@@ -676,0 +677,15 @@ set       toc,title
+
+<xsl:param name="local.l10n.xml" select="document('')"/>
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+  <l:l10n language="en">
+    <l:context name="xref-number-and-title">
+      <l:template name="appendix" text="Appendix - %t"/>
+      <l:template name="chapter" text="%t"/>
+      <l:template name="sect1" text="%t"/>
+      <l:template name="sect2" text="%t"/>
+      <l:template name="sect3" text="%t"/>
+      <l:template name="table" text="table %t"/>
+    </l:context>
+  </l:l10n>
+</l:i18n>
+
diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml
index 67482996861..264e727764a 100644
--- a/doc/src/sgml/syntax.sgml
+++ b/doc/src/sgml/syntax.sgml
@@ -102 +102 @@ INSERT INTO MY_TABLE VALUES (3, 'hi there');
-    <firstterm>key words</firstterm>, that is, words that have a fixed
+    <xref linkend="sql-keywords-appendix"/>, that is, words that have a fixed
@@ -111,2 +110,0 @@ INSERT INTO MY_TABLE VALUES (3, 'hi there');
-    A complete list of key words can be found in <xref
-    linkend="sql-keywords-appendix"/>.
@@ -435,4 +433,3 @@ SELECT 'foo'      'bar';
-     A useful alternative is to use Unicode escapes or the
-     alternative Unicode escape syntax, explained
-     in <xref linkend="sql-syntax-strings-uescape"/>; then the server
-     will check that the character conversion is possible.
+     A useful alternative is to use
+     <xref linkend="sql-syntax-strings-uescape"/>;
+     then the server will check that the character conversion is possible.
@@ -889,2 +886 @@ CAST ( '<replaceable>string</replaceable>' AS <replaceable>type</replaceable> )
-      of an array.  See <xref linkend="arrays"/> for more information
-      on arrays.
+      of an array.  See <xref linkend="arrays"/> for more information.
@@ -912,2 +908,2 @@ CAST ( '<replaceable>string</replaceable>' AS <replaceable>type</replaceable> )
-      <quote>slices</quote> from arrays. (See <xref
-      linkend="arrays"/>.)  In certain SQL dialects (such as Embedded
+      <quote>slices</quote> from <xref linkend="arrays"/>.  In certain SQL
+      dialects (such as Embedded
@@ -1284,2 +1280 @@ SELECT 3 OPERATOR(pg_catalog.+) 4;
-   rules.  These generally have the semantics of a function or
-   operator and are explained in the appropriate location in <xref
+   rules.  These generally have the semantics of <xref
@@ -1291 +1286 @@ SELECT 3 OPERATOR(pg_catalog.+) 4;
-   We have already discussed constants in <xref
+   We have already discussed <xref
@@ -1398 +1393 @@ $1[10:42]
-    See <xref linkend="arrays"/> for more about arrays.
+    See <xref linkend="arrays"/> for more information.
@@ -1622,2 +1617,2 @@ sqrt(2)
-    has the same syntax as for a query-level <literal>ORDER BY</literal> clause, as
-    described in <xref linkend="queries-order"/>, except that its expressions
+    has the same syntax as <xref linkend="queries-order"/>, except that its
+    expressions
@@ -1748 +1743 @@ FROM generate_series(1,10) AS s(i);
-    The predefined aggregate functions are described in <xref
+    The predefined aggregate functions are in <xref
@@ -2040 +2035 @@ EXCLUDE NO OTHERS
-    More information about window functions can be found in
+    More information can be found in
@@ -2176 +2171 @@ SELECT * FROM tbl WHERE a &gt; 'foo' COLLATE "C";
-    error.  For more details see <xref linkend="collation"/>.)
+    error; see <xref linkend="collation"/>.)
@@ -2201 +2196 @@ SELECT * FROM tbl WHERE (a &gt; 'foo') COLLATE "C";
-    row with one column.  (See <xref linkend="queries"/> for information about writing queries.)
+    row with one column.  (See <xref linkend="queries"/>.)
@@ -2210 +2205 @@ SELECT * FROM tbl WHERE (a &gt; 'foo') COLLATE "C";
-    See also <xref linkend="functions-subquery"/> for other expressions involving subqueries.
+    See also <xref linkend="functions-subquery"/>.
@@ -2252,2 +2247,2 @@ SELECT ARRAY[1,2,3+4];
-    determined using the same rules as for <literal>UNION</literal> or
-    <literal>CASE</literal> constructs (see <xref linkend="typeconv-union-case"/>).
+    determined using the same rules as for
+    <xref linkend="typeconv-union-case"/>.
@@ -2265 +2260 @@ SELECT ARRAY[1,2,22.7]::integer[];
-    For more on casting, see <xref linkend="sql-syntax-type-casts"/>.
+    For more information, see <xref linkend="sql-syntax-type-casts"/>.
@@ -2355 +2350 @@ SELECT ARRAY(SELECT ARRAY[i, i*2] FROM generate_series(1,5) AS a(i));
-   always begin with one.  For more information about arrays, see
+   always begin with one.  For more information, see
@@ -2462 +2457 @@ SELECT getf1(CAST(ROW(11,'this is a test',2.5) AS myrowtype));
-   using the standard comparison operators as described in <xref
+   using the standard <xref
@@ -2464,2 +2459,2 @@ SELECT getf1(CAST(ROW(11,'this is a test',2.5) AS myrowtype));
-   as described in <xref linkend="functions-comparisons"/>, and to
-   use them in connection with subqueries, as discussed in <xref
+   using <xref linkend="functions-comparisons"/>, and to
+   use them in connection with subqueries, with <xref
@@ -2513,2 +2508,2 @@ SELECT somefunc() OR true;
-    When it is essential to force evaluation order, a <literal>CASE</literal>
-    construct (see <xref linkend="functions-conditional"/>) can be
+    When it is essential to force evaluation order,
+    <xref linkend="functions-conditional"/> can be
diff --git a/doc/src/sgml/system-views.sgml b/doc/src/sgml/system-views.sgml
index 2ebec6928d5..650c2f33599 100644
--- a/doc/src/sgml/system-views.sgml
+++ b/doc/src/sgml/system-views.sgml
@@ -17 +17 @@
-   The information schema (<xref linkend="information-schema"/>) provides
+   <xref linkend="information-schema"/> provides
@@ -1325,2 +1325 @@ AND c1.path[c2.level] = c2.path[c2.level];
-   See <xref linkend="config-setting"/> for more information about the various
-   ways to change run-time parameters.
+   See <xref linkend="config-setting"/> for more information.
@@ -1556,2 +1555 @@ AND c1.path[c2.level] = c2.path[c2.level];
-   See <xref linkend="client-authentication"/> for more information about
-   client authentication configuration.
+   See <xref linkend="client-authentication"/> for more information.
@@ -1677,2 +1675 @@ AND c1.path[c2.level] = c2.path[c2.level];
-   See <xref linkend="client-authentication"/> for more information about
-   client authentication configuration.
+   See <xref linkend="client-authentication"/> for more information.
@@ -2821 +2818 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
-   For more on replication slots,
+   For more information,
@@ -3049,2 +3046,2 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
-        indicates the time when slot synchronization (see <xref
-        linkend="logicaldecoding-replication-slots-synchronization"/>)
+        indicates the time when <xref
+        linkend="logicaldecoding-replication-slots-synchronization"/>
@@ -3312,2 +3309 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
-       Role bypasses every row-level security policy, see
-       <xref linkend="ddl-rowsecurity"/> for more information.
+       Role bypasses all <xref linkend="ddl-rowsecurity"/>.
@@ -4134,2 +4130 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
-       User bypasses every row-level security policy, see
-       <xref linkend="ddl-rowsecurity"/> for more information.
+       User bypasses all <xref linkend="ddl-rowsecurity"/>.
@@ -4184,2 +4179 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
-   allocated by extensions using the mechanisms detailed in
-   <xref linkend="xfunc-shared-addin" />.
+   allocated by extensions using <xref linkend="xfunc-shared-addin" />.
@@ -4280,2 +4274,2 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
-   by extensions using the mechanisms detailed in
-   <xref linkend="xfunc-shared-addin" />. This view will output multiple rows
+   by extensions using <xref linkend="xfunc-shared-addin" />. This view will
+   output multiple rows
@@ -5500,2 +5494 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
-       User bypasses every row-level security policy, see
-       <xref linkend="ddl-rowsecurity"/> for more information.
+       User bypasses all <xref linkend="ddl-rowsecurity"/>.
diff --git a/doc/src/sgml/tableam.sgml b/doc/src/sgml/tableam.sgml
index 9ccf5b739ed..a1e02b58ce1 100644
--- a/doc/src/sgml/tableam.sgml
+++ b/doc/src/sgml/tableam.sgml
@@ -117,2 +117 @@ my_tableam_handler(PG_FUNCTION_ARGS)
-  <productname>PostgreSQL</productname>'s standard page layout as described in
-  <xref linkend="storage-page-layout"/>.
+  <productname>PostgreSQL</productname>'s <xref linkend="storage-page-layout"/>.
diff --git a/doc/src/sgml/tablesample-method.sgml b/doc/src/sgml/tablesample-method.sgml
index c821941b71b..a0818bda136 100644
--- a/doc/src/sgml/tablesample-method.sgml
+++ b/doc/src/sgml/tablesample-method.sgml
@@ -33,4 +33,4 @@ method_name(internal) RETURNS tsm_handler
-  type <type>TsmRoutine</type>, which contains pointers to support functions for
-  the sampling method.  These support functions are plain C functions and
-  are not visible or callable at the SQL level.  The support functions are
-  described in <xref linkend="tablesample-support-functions"/>.
+  type <type>TsmRoutine</type>, which contains pointers to
+  <xref linkend="tablesample-support-functions"/>
+  for the sampling method.  These support functions are plain C functions and
+  are not visible or callable at the SQL level.
diff --git a/doc/src/sgml/textsearch.sgml b/doc/src/sgml/textsearch.sgml
index d6d2ddeaacc..bbe6d4e8657 100644
--- a/doc/src/sgml/textsearch.sgml
+++ b/doc/src/sgml/textsearch.sgml
@@ -164,2 +164 @@
-   functions and operators available for these data types
-   (<xref linkend="functions-textsearch"/>), the most important of which is
+   <xref linkend="functions-textsearch"/>, the most important of which is
@@ -263 +262,2 @@ SELECT 'fat &amp; cow'::tsquery @@ 'a fat cat sat on a mat and ate a fat rat'::t
-    As the above example suggests, a <type>tsquery</type> is not just raw
+    As the above example suggests, a <xref linkend="datatype-tsquery"/> is not
+    just raw
@@ -267 +267 @@ SELECT 'fat &amp; cow'::tsquery @@ 'a fat cat sat on a mat and ate a fat rat'::t
-    (For syntax details see <xref linkend="datatype-tsquery"/>.)  There are
+    There are
@@ -576 +576 @@ CREATE INDEX pgweb_idx ON pgweb USING GIN (to_tsvector('english', body));
-    be used in expression indexes (<xref linkend="indexes-expressional"/>).
+    be used in <xref linkend="indexes-expressional"/>.
@@ -729 +729 @@ SELECT to_tsvector('english', 'a fat  cat sat on a mat - it ate a fat rats');
-    dictionaries (<xref linkend="textsearch-dictionaries"/>) is consulted,
+    <xref linkend="textsearch-dictionaries"/> is consulted,
@@ -736 +736 @@ SELECT to_tsvector('english', 'a fat  cat sat on a mat - it ate a fat rats');
-    <firstterm>stop words</firstterm> (<xref linkend="textsearch-stopwords"/>), which
+    <xref linkend="textsearch-stopwords"/>, which
@@ -822,2 +822,2 @@ to_tsquery(<optional> <replaceable class="parameter">config</replaceable> <type>
-    <type>tsquery</type> input, as described in <xref
-    linkend="datatype-tsquery"/>.  The difference is that while basic
+    <xref
+    linkend="datatype-tsquery"/> input.  The difference is that while basic
@@ -1770 +1770 @@ SELECT querytree(to_tsquery('!defined'));
-     and thesaurus dictionaries (<xref linkend="textsearch-thesaurus"/>).
+     and <xref linkend="textsearch-thesaurus"/>.
@@ -2594,2 +2594,2 @@ SELECT ts_lexize('public.simple_dict', 'The');
-    word with a synonym. Phrases are not supported (use the thesaurus
-    template (<xref linkend="textsearch-thesaurus"/>) for that).  A synonym
+    word with a synonym. Phrases are not supported (use
+    <xref linkend="textsearch-thesaurus"/> for that).  A synonym
@@ -3246,2 +3246 @@ CREATE TEXT SEARCH DICTIONARY english_stem (
-    is available, and there are several <application>psql</application> commands that display information
-    about text search objects (<xref linkend="textsearch-psql"/>).
+    is available, and there is also <xref linkend="textsearch-psql"/>.
@@ -3515,2 +3514,2 @@ SELECT * FROM ts_debug('public.english', 'The Brightest supernovaes');
-   <literal>english_ispell</literal> dictionary as a stop word (<xref
-   linkend="textsearch-stopwords"/>) and will not be indexed.
+   <literal>english_ispell</literal> dictionary as
+   <xref linkend="textsearch-stopwords"/> and will not be indexed.
diff --git a/doc/src/sgml/trigger.sgml b/doc/src/sgml/trigger.sgml
index 8a5e7278212..025f696a9cf 100644
--- a/doc/src/sgml/trigger.sgml
+++ b/doc/src/sgml/trigger.sgml
@@ -14,4 +14,4 @@
-   <application>PL/pgSQL</application> (<xref linkend="plpgsql"/>),
-   <application>PL/Tcl</application> (<xref linkend="pltcl"/>),
-   <application>PL/Perl</application> (<xref linkend="plperl"/>), and
-   <application>PL/Python</application> (<xref linkend="plpython"/>).
+   <xref linkend="plpgsql"/>,
+   <xref linkend="pltcl"/>,
+   <xref linkend="plperl"/>, and
+   <xref linkend="plpython"/>.
@@ -507 +507 @@
-    Further information about data visibility rules can be found in
+    Further information can be found in
diff --git a/doc/src/sgml/typeconv.sgml b/doc/src/sgml/typeconv.sgml
index 96aa02e4fab..a699f248780 100644
--- a/doc/src/sgml/typeconv.sgml
+++ b/doc/src/sgml/typeconv.sgml
@@ -30,2 +30 @@ Refer to the relevant sections in <xref linkend="datatype"/> and <xref linkend="
-for more information on specific data types and allowed functions and
-operators.
+for more information.
@@ -216 +215 @@ should use this new function and no longer do implicit conversion to use the old
-   by the precedence of the operators involved, since that will determine
+   by <xref linkend="sql-precedence"/>, since that will determine
@@ -218 +216,0 @@ should use this new function and no longer do implicit conversion to use the old
-   See <xref linkend="sql-precedence"/> for more information.
@@ -230 +228 @@ considered are those with the matching name and argument count that are
-visible in the current search path (see <xref linkend="ddl-schemas-path"/>).
+visible in <xref linkend="ddl-schemas-path"/>.
@@ -505,2 +503,2 @@ and range inclusion (<type>anyelement</type> <literal>&lt;@</literal> <type>anyr
-Since none of these polymorphic pseudo-types (see <xref
-linkend="datatype-pseudo"/>) are considered preferred, the parser cannot
+Since none of these <xref
+linkend="datatype-pseudo"/> are considered preferred, the parser cannot
@@ -580 +578 @@ considered are those with the matching name and argument count that are
-visible in the current search path (see <xref linkend="ddl-schemas-path"/>).
+visible in <xref linkend="ddl-schemas-path"/>.
diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 0ec32700bd4..005dfa83f57 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -26,2 +26 @@
-  More information about the effects of role privileges on various
-  database objects can be found in <xref linkend="ddl-priv"/>.
+  More information can be found in <xref linkend="ddl-priv"/>.
@@ -132,2 +131,2 @@ SELECT rolname FROM pg_roles WHERE rolcanlogin;
-   is determined by the client authentication setup, as explained in
-   <xref linkend="client-authentication"/>. (Thus, a client is not
+   is determined by <xref linkend="client-authentication"/>. (Thus, a client is
+   not
@@ -138,2 +137,2 @@ SELECT rolname FROM pg_roles WHERE rolcanlogin;
-   client, it is important to carefully configure privileges when setting up
-   a multiuser environment.
+   client, it is important to carefully configure privileges when setting up a
+   multiuser environment.
@@ -314 +313 @@ CREATE USER <replaceable>name</replaceable>;
-   configuration settings described in <xref
+   <xref
@@ -772 +771 @@ GRANT pg_signal_backend TO admin_user;
-       session.  See <xref linkend="functions-admin-signal"/>.
+       session, as described in <xref linkend="functions-admin-signal"/>.
@@ -782,3 +781,3 @@ GRANT pg_signal_backend TO admin_user;
-       cancel a query or terminate its session.  Note that this role does not
-       permit signaling backends owned by a superuser.  See
-       <xref linkend="functions-admin-signal"/>.
+       cancel a query or terminate its session (see
+       <xref linkend="functions-admin-signal"/>).  Note that this role does not
+       permit signaling backends owned by a superuser.
diff --git a/doc/src/sgml/uuid-ossp.sgml b/doc/src/sgml/uuid-ossp.sgml
index acd20a51f01..f1b2bed2603 100644
--- a/doc/src/sgml/uuid-ossp.sgml
+++ b/doc/src/sgml/uuid-ossp.sgml
@@ -16 +16 @@
-  linkend="functions-uuid"/> for built-in ways to generate UUIDs.
+  linkend="functions-uuid"/>.
diff --git a/doc/src/sgml/vacuumlo.sgml b/doc/src/sgml/vacuumlo.sgml
index 26b764d54b7..1c094b20c27 100644
--- a/doc/src/sgml/vacuumlo.sgml
+++ b/doc/src/sgml/vacuumlo.sgml
@@ -196,2 +196,2 @@
-   also uses the environment variables supported by <application>libpq</application>
-   (see <xref linkend="libpq-envars"/>).
+   also uses the <xref linkend="libpq-envars"/> supported by
+   <application>libpq</application>.
diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml
index 646076f7e39..6d139b87535 100644
--- a/doc/src/sgml/wal.sgml
+++ b/doc/src/sgml/wal.sgml
@@ -455,2 +455 @@
-    <acronym>WAL</acronym> also makes it possible to support on-line
-    backup and point-in-time recovery, as described in <xref
+    <acronym>WAL</acronym> also makes it possible to support <xref
@@ -606,2 +605 @@
-   Consult <xref linkend="runtime-config"/> for general information about
-   setting server configuration parameters.
+   Consult <xref linkend="runtime-config"/> for general information.
@@ -760,2 +758 @@
-   uses a replication slot will have the same effect (see
-   <xref linkend="streaming-replication-slots"/>).
+   uses <xref linkend="streaming-replication-slots"/> will have the same effect.
diff --git a/doc/src/sgml/xact.sgml b/doc/src/sgml/xact.sgml
index 3aa7ee1383e..cb39d5c8150 100644
--- a/doc/src/sgml/xact.sgml
+++ b/doc/src/sgml/xact.sgml
@@ -102,2 +102,2 @@
-   of multixact IDs (<literal>mxid</literal>;  see <xref
-   linkend="vacuum-for-multixact-wraparound"/>).
+   of <xref linkend="vacuum-for-multixact-wraparound"/>
+   (<literal>mxid</literal>).
diff --git a/doc/src/sgml/xaggr.sgml b/doc/src/sgml/xaggr.sgml
index bdad8d3dc2b..4c12a85a775 100644
--- a/doc/src/sgml/xaggr.sgml
+++ b/doc/src/sgml/xaggr.sgml
@@ -165,2 +165 @@ CREATE AGGREGATE avg (float8)
-   and <xref linkend="syntax-window-functions"/> for information about use of
-   aggregate functions as window functions.)
+   and <xref linkend="syntax-window-functions"/>.)
@@ -293,2 +292 @@ FROM (VALUES (1, 1.0e20::float8),
-   See <xref linkend="extend-types-polymorphic"/>
-   for an explanation of polymorphic functions.
+   See <xref linkend="extend-types-polymorphic"/>.
@@ -386,2 +384,2 @@ CREATE AGGREGATE array_agg (anynonarray)
-   the same fashion as for regular functions; see
-   <xref linkend="xfunc-sql-variadic-functions"/>.  The aggregate's transition
+   the same fashion as for <xref linkend="xfunc-sql-variadic-functions"/>.  The
+   aggregate's transition
diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml
index bae16d7fb53..b05d83c5074 100644
--- a/doc/src/sgml/xfunc.sgml
+++ b/doc/src/sgml/xfunc.sgml
@@ -18,2 +18 @@
-      query language functions (functions written in
-      <acronym>SQL</acronym>) (<xref linkend="xfunc-sql"/>)
+      <xref linkend="xfunc-sql"/>
@@ -24 +23 @@
-      procedural language functions (functions written in, for
+      <xref linkend="xfunc-pl"/> (functions written in, for
@@ -26 +24,0 @@
-      (<xref linkend="xfunc-pl"/>)
@@ -31 +29 @@
-      internal functions (<xref linkend="xfunc-internal"/>)
+      <xref linkend="xfunc-internal"/>
@@ -36 +34 @@
-      C-language functions (<xref linkend="xfunc-c"/>)
+      <xref linkend="xfunc-c"/>
@@ -240,3 +238,3 @@ CALL clean_emp();
-    most convenient to use dollar quoting (see <xref
-    linkend="sql-syntax-dollar-quoting"/>) for the string constant.
-    If you choose to use regular single-quoted string constant syntax,
+    most convenient to use <xref linkend="sql-syntax-dollar-quoting"/>.
+    If you choose to use regular single-quoted
+    <xref linkend="sql-syntax-strings"/>,
@@ -245 +243 @@ CALL clean_emp();
-    the function (see <xref linkend="sql-syntax-strings"/>).
+    the function.
@@ -612,2 +610 @@ SELECT * FROM new_emp();
-     The second way is described more fully in <xref
-     linkend="xfunc-sql-table-functions"/>.
+     See <xref linkend="xfunc-sql-table-functions"/>.
@@ -793 +790,3 @@ CALL tp1(17, 100.0, NULL);
-     When calling a procedure from <application>PL/pgSQL</application>,
+     When <xref
+     linkend="plpgsql-statements-calling-procedure"/> from
+     <application>PL/pgSQL</application>,
@@ -795,2 +794 @@ CALL tp1(17, 100.0, NULL);
-     that will receive the procedure's output.  See <xref
-     linkend="plpgsql-statements-calling-procedure"/> for details.
+     that will receive the procedure's output.
@@ -1073,2 +1071 @@ SELECT * FROM sum_n_product_with_tab(10);
-     preferred way to do this is to use the <literal>LATERAL</literal> key word,
-     which is described in <xref linkend="queries-lateral"/>.
+     preferred way to do this is to use <xref linkend="queries-lateral"/>.
@@ -1319 +1316 @@ $$ LANGUAGE SQL;
-     return the polymorphic types described in <xref
+     return <xref
@@ -1466,2 +1463,2 @@ SELECT concat_values('|', 1, 4, 2);
-     collations assigned to the actual arguments, as described in <xref
-     linkend="collation"/>.  If a collation is successfully identified
+     collations assigned to the actual arguments (see
+     <xref linkend="collation"/>).  If a collation is successfully identified
@@ -1760,2 +1757,2 @@ CREATE FUNCTION test(int, int) RETURNS int
-    languages are generically called <firstterm>procedural
-    languages</firstterm> (<acronym>PL</acronym>s).
+    languages are generically called <xref linkend="xplang"/>
+    (<acronym>PL</acronym>s).
@@ -1765,2 +1761,0 @@ CREATE FUNCTION test(int, int) RETURNS int
-    See <xref linkend="xplang"/> and following chapters for more
-    information.
@@ -1788,2 +1783 @@ CREATE FUNCTION test(int, int) RETURNS int
-    server are declared during the initialization of the database cluster
-    (see <xref linkend="creating-cluster"/>),
+    server are declared during <xref linkend="creating-cluster"/>,
@@ -2675,2 +2669,2 @@ CREATE FUNCTION t_starts_with(text, text) RETURNS boolean
-     to return set results (<xref linkend="xfunc-c-return-set"/>) and
-     implement trigger functions (<xref linkend="triggers"/>) and
+     to <xref linkend="xfunc-c-return-set"/> and
+     implement <xref linkend="triggers"/> and
@@ -2719,3 +2713 @@ CREATE FUNCTION t_starts_with(text, text) RETURNS boolean
-        requires special flags.  See <xref linkend="dfunc"/> for a
-        detailed explanation of how to do it for your particular
-        operating system.
+        requires special flags.  See <xref linkend="dfunc"/>.
@@ -2807 +2799 @@ CREATE FUNCTION t_starts_with(text, text) RETURNS boolean
-      <acronym>SPI</acronym> (<xref linkend="spi"/>), and various hooks
+      <xref linkend="spi"/>, and various hooks
@@ -2858,2 +2850,2 @@ CREATE FUNCTION t_starts_with(text, text) RETURNS boolean
-       changes will be communicated in the release notes (<xref
-       linkend="release"/>).
+       changes will be communicated in <xref
+       linkend="release"/>.
@@ -2904,2 +2896,2 @@ CREATE FUNCTION t_starts_with(text, text) RETURNS boolean
-       Such changes will also be documented in the release notes (<xref
-       linkend="release"/>).
+       Such changes will also be documented in <xref
+       linkend="release"/>.
@@ -3515 +3507 @@ CREATE OR REPLACE FUNCTION retcomposite(IN integer, IN integer,
-     return the polymorphic types described in <xref
+     return <xref
diff --git a/doc/src/sgml/xindex.sgml b/doc/src/sgml/xindex.sgml
index 3d315df2f98..a71e8d16f9d 100644
--- a/doc/src/sgml/xindex.sgml
+++ b/doc/src/sgml/xindex.sgml
@@ -370,3 +370,3 @@
-   (Some index access methods also support <firstterm>ordering operators</firstterm>,
-   which typically don't return Boolean values; that feature is discussed
-   in <xref linkend="xindex-ordering-ops"/>.)
+   (Some index access methods also support
+   <xref linkend="xindex-ordering-ops"/>,
+   which typically don't return Boolean values.)
@@ -412,2 +412 @@
-   The requirements for these support functions are explained further in
-   <xref linkend="btree-support-funcs"/>.
+   See <xref linkend="btree-support-funcs"/> for requirements.
@@ -518 +517,2 @@
-   GiST indexes have twelve support functions, seven of which are optional,
+   <xref linkend="gist"/> have twelve support functions, seven of which are
+   optional,
@@ -520 +519,0 @@
-   (For more information see <xref linkend="gist"/>.)
@@ -611 +610,2 @@
-   SP-GiST indexes have six support functions, one of which is optional, as
+   <xref linkend="spgist"/> have six support functions, one of which is
+   optional, as
@@ -613 +612,0 @@
-   (For more information see <xref linkend="spgist"/>.)
@@ -668 +667,2 @@
-   GIN indexes have seven support functions, four of which are optional,
+   <xref linkend="gin"/> have seven support functions, four of which are
+   optional,
@@ -670 +669,0 @@
-   (For more information see <xref linkend="gin"/>.)
@@ -745,2 +744,2 @@
-   BRIN indexes have five basic support functions, one of which is optional,
-   as shown in <xref linkend="xindex-brin-support-table"/>.  Some versions of
+   <xref linkend="xindex-brin-support-table"/> lists five basic
+   functions for BRIN indexes, one of which is optional.  Some versions of
@@ -827,2 +826,2 @@
-   a set of operators.  The procedure for defining operators was
-   discussed in <xref linkend="xoper"/>.  For an operator class on
+   a set of operators.  See <xref linkend="xoper"/> for the procedure.  For an
+   operator class on
@@ -1298 +1297 @@ SELECT * FROM mytable ORDER BY somecol USING ~&lt;~;
-   for window functions (see <xref linkend="syntax-window-functions"/>).
+   for <xref linkend="syntax-window-functions"/>.
diff --git a/doc/src/sgml/xplang.sgml b/doc/src/sgml/xplang.sgml
index 31d403c4806..13cb38ea34b 100644
--- a/doc/src/sgml/xplang.sgml
+++ b/doc/src/sgml/xplang.sgml
@@ -30,4 +30,4 @@
-   <application>PL/pgSQL</application> (<xref linkend="plpgsql"/>),
-   <application>PL/Tcl</application> (<xref linkend="pltcl"/>),
-   <application>PL/Perl</application> (<xref linkend="plperl"/>), and
-   <application>PL/Python</application> (<xref linkend="plpython"/>).
+   <xref linkend="plpgsql"/>,
+   <xref linkend="pltcl"/>,
+   <xref linkend="plperl"/>, and
+   <xref linkend="plpython"/>.
diff --git a/doc/src/sgml/xtypes.sgml b/doc/src/sgml/xtypes.sgml
index df56d1c3ace..01a903ff71c 100644
--- a/doc/src/sgml/xtypes.sgml
+++ b/doc/src/sgml/xtypes.sgml
@@ -261,2 +261,2 @@ CREATE TYPE complex (
-  usually desirable to make the data type <acronym>TOAST</acronym>-able (see <xref
-  linkend="storage-toast"/>). You should do this even if the values are always
+  usually desirable to make the data type <xref linkend="storage-toast"/>-able.
+  You should do this even if the values are always
-- 
2.53.0.windows.1

