<listitem>
<para>
-Change a <function>json_array()</function> call which returns no rows to return an empty <acronym>JSON</acronym> array (Richard Guo)
+Change a <link linkend="functions-json"><function>json_array()</function></link> call which returns no rows to return an empty <acronym>JSON</acronym> array (Richard Guo)
<ulink url="&commit_baseurl;8d829f5a0">§</ulink>
</para>
<listitem>
<para>
-Change index access method handlers to use a static <structname>IndexAmRoutines</structname> structure, rather than dynamically allocated ones (Matthias van de Meent)
+Change index access method handlers to use a static <link linkend="indexam"><structname>IndexAmRoutines</structname></link> structure, rather than dynamically allocated ones (Matthias van de Meent)
<ulink url="&commit_baseurl;bc6374cd7">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Allow negative values of <structname>pg_aggregate</structname>.<structfield>aggtransspace</structfield> to indicate unbounded memory usage (Richard Guo)
+Allow negative values of <link linkend="catalog-pg-aggregate"><structname>pg_aggregate</structname></link>.<link linkend="catalog-pg-aggregate"><structfield>aggtransspace</structfield></link> to indicate unbounded memory usage (Richard Guo)
<ulink url="&commit_baseurl;185e30426">§</ulink>
</para>
<listitem>
<para>
-Simplify <function>COALESCE()</function> and <literal>ROW(...) IS [NOT] NULL</literal> to avoid evaluating unnecessary arguments (Richard Guo)
+Simplify <link linkend="functions-coalesce-nvl-ifnull"><function>COALESCE()</function></link> and <literal>ROW(...) IS [NOT] NULL</literal> to avoid evaluating unnecessary arguments (Richard Guo)
<ulink url="&commit_baseurl;10c4fe074">§</ulink>
<ulink url="&commit_baseurl;cb7b7ec7a">§</ulink>
</para>
<listitem>
<para>
-Allow function <function>pg_restore_extended_stats()</function> to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li)
+Allow function <link linkend="functions-admin-statsmod"><function>pg_restore_extended_stats()</function></link> to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li)
<ulink url="&commit_baseurl;0e80f3f88">§</ulink>
<ulink url="&commit_baseurl;302879bd6">§</ulink>
<ulink url="&commit_baseurl;efbebb4e8">§</ulink>
<listitem>
<para>
-Add function <function>pg_clear_extended_stats()</function> to remove extended statistics (Corey Huinker, Michael Paquier)
+Add function <link linkend="functions-admin-statsmod"><function>pg_clear_extended_stats()</function></link> to remove extended statistics (Corey Huinker, Michael Paquier)
<ulink url="&commit_baseurl;d756fa101">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add system view <structname>pg_stat_lock</structname> and function <function>pg_stat_get_lock()</function> to report per-lock type statistics (Bertrand Drouvot)
+Add system view <link linkend="pg-stat-lock-view"><structname>pg_stat_lock</structname></link> and function <link linkend="monitoring-pg-stat-lock-view"><function>pg_stat_get_lock()</function></link> to report per-lock type statistics (Bertrand Drouvot)
<ulink url="&commit_baseurl;4019f725f">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add system view <structname>pg_stat_recovery</structname> to report recovery status (Xuneng Zhou, Shinya Kato)
+Add system view <link linkend="pg-stat-recovery-view"><structname>pg_stat_recovery</structname></link> to report recovery status (Xuneng Zhou, Shinya Kato)
<ulink url="&commit_baseurl;01d485b14">§</ulink>
<ulink url="&commit_baseurl;2d4ead6f4">§</ulink>
</para>
<listitem>
<para>
-Add mem_exceeded_count column to system view <structname>pg_stat_replication_slots</structname> (Bertrand Drouvot)
+Add mem_exceeded_count column to system view <link linkend="pg-stat-replication-slots-view"><structname>pg_stat_replication_slots</structname></link> (Bertrand Drouvot)
<ulink url="&commit_baseurl;d3b6183dd">§</ulink>
</para>
<listitem>
<para>
-Add stats_reset column to system views <structname>pg_stat_all_tables</structname>, <structname>pg_stat_all_indexes</structname>, and <structname>pg_statio_all_sequences</structname> (Bertrand Drouvot, Sami Imseih, Shihao Zhong)
+Add stats_reset column to system views <link linkend="pg-stat-all-tables-view"><structname>pg_stat_all_tables</structname></link>, <link linkend="pg-stat-all-indexes-view"><structname>pg_stat_all_indexes</structname></link>, and <link linkend="pg-statio-all-sequences-view"><structname>pg_statio_all_sequences</structname></link> (Bertrand Drouvot, Sami Imseih, Shihao Zhong)
<ulink url="&commit_baseurl;a5b543258">§</ulink>
</para>
<listitem>
<para>
-Add stats_reset column to system views <structname>pg_stat_user_functions</structname> and <structname>pg_stat_database_conflicts</structname> (Bertrand Drouvot, Shihao Zhong)
+Add stats_reset column to system views <link linkend="pg-stat-user-functions-view"><structname>pg_stat_user_functions</structname></link> and <link linkend="pg-stat-database-conflicts-view"><structname>pg_stat_database_conflicts</structname></link> (Bertrand Drouvot, Shihao Zhong)
<ulink url="&commit_baseurl;b71bae41a">§</ulink>
<ulink url="&commit_baseurl;8fe315f18">§</ulink>
</para>
<listitem>
<para>
-Add system view <structname>pg_stat_autovacuum_scores</structname> to report per-table autovacuum details (Sami Imseih)
+Add system view <link linkend="pg-stat-autovacuum-scores-view"><structname>pg_stat_autovacuum_scores</structname></link> to report per-table autovacuum details (Sami Imseih)
<ulink url="&commit_baseurl;87f61f0c8">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add vacuum initiation details to system view <structname>pg_stat_progress_vacuum</structname> (Shinya Kato)
+Add vacuum initiation details to system view <link linkend="pg-stat-progress-vacuum-view"><structname>pg_stat_progress_vacuum</structname></link> (Shinya Kato)
<ulink url="&commit_baseurl;0d7895206">§</ulink>
</para>
<listitem>
<para>
-Add analyze initiation details to system view <structname>pg_stat_progress_analyze</structname> (Shinya Kato)
+Add analyze initiation details to system view <link linkend="pg-stat-progress-analyze-view"><structname>pg_stat_progress_analyze</structname></link> (Shinya Kato)
<ulink url="&commit_baseurl;ab40db385">§</ulink>
</para>
<listitem>
<para>
-Add a column to system view <structname>pg_stat_progress_basebackup</structname> to report the type of backup (Shinya Kato)
+Add a column to system view <link linkend="pg-stat-progress-basebackup-view"><structname>pg_stat_progress_basebackup</structname></link> to report the type of backup (Shinya Kato)
<ulink url="&commit_baseurl;deb674454">§</ulink>
</para>
</para>
<para>
-This is accessible via system view <structname>pg_stat_wal</structname> and function <function>pg_stat_get_backend_wal()</function>.
+This is accessible via system view <link linkend="pg-stat-wal-view"><structname>pg_stat_wal</structname></link> and function <link linkend="pg-stat-get-backend-wal"><function>pg_stat_get_backend_wal()</function></link>.
</para>
</listitem>
<listitem>
<para>
-Add <literal>connecting</literal> status to system view column <structname>pg_stat_wal_receiver</structname>.<structfield>status</structfield> (Xuneng Zhou)
+Add <literal>connecting</literal> status to system view column <link linkend="pg-stat-wal-receiver-view"><structname>pg_stat_wal_receiver</structname></link>.<link linkend="pg-stat-wal-receiver-view"><structfield>status</structfield></link> (Xuneng Zhou)
<ulink url="&commit_baseurl;a36164e74">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add columns to system views <structname>pg_stats</structname>, <structname>pg_stats_ext</structname>, and <structname>pg_stats_ext_exprs</structname> (Corey Huinker)
+Add columns to system views <link linkend="view-pg-stats"><structname>pg_stats</structname></link>, <link linkend="view-pg-stats-ext"><structname>pg_stats_ext</structname></link>, and <link linkend="view-pg-stats-ext-exprs"><structname>pg_stats_ext_exprs</structname></link> (Corey Huinker)
<ulink url="&commit_baseurl;3b88e50d6">§</ulink>
</para>
<para>
-Adds table <type>OID</type> and attribute number columns to <structname>pg_stats</structname>, and table <type>OID</type> and statistics object <type>OID</type> columns to the other two.
+Adds table <type>OID</type> and attribute number columns to <link linkend="view-pg-stats"><structname>pg_stats</structname></link>, and table <type>OID</type> and statistics object <type>OID</type> columns to the other two.
</para>
</listitem>
<listitem>
<para>
-Add information about range type extended statistics to system view <structname>pg_stats_ext_exprs</structname> (Corey Huinker, Michael Paquier)
+Add information about range type extended statistics to system view <link linkend="view-pg-stats-ext-exprs"><structname>pg_stats_ext_exprs</structname></link> (Corey Huinker, Michael Paquier)
<ulink url="&commit_baseurl;307447e6d">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add system view <structname>pg_dsm_registry_allocations</structname> to report dynamic shared memory details (Florents Tselai, Nathan Bossart)
+Add system view <link linkend="view-pg-dsm-registry-allocations"><structname>pg_dsm_registry_allocations</structname></link> to report dynamic shared memory details (Florents Tselai, Nathan Bossart)
<ulink url="&commit_baseurl;167ed8082">§</ulink>
<ulink url="&commit_baseurl;f894acb24">§</ulink>
</para>
<listitem>
<para>
-Add column <literal>location</literal> to system views <structname>pg_available_extensions</structname> and <structname>pg_available_extension_versions</structname> to report the file system directory of extensions (Matheus Alcantara)
+Add column <literal>location</literal> to system views <link linkend="view-pg-available-extensions"><structname>pg_available_extensions</structname></link> and <link linkend="view-pg-available-extension-versions"><structname>pg_available_extension_versions</structname></link> to report the file system directory of extensions (Matheus Alcantara)
<ulink url="&commit_baseurl;f3c9e341c">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add function <function>pg_get_multixact_stats()</function> to report multixact activity (Naga Appani)
+Add function <link linkend="functions-info-snapshot"><function>pg_get_multixact_stats()</function></link> to report multixact activity (Naga Appani)
<ulink url="&commit_baseurl;97b101776">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Improve function <function>pg_sync_replication_slots()</function> to wait for the synchronization completion (Ajin Cherian, Zhijie Hou)
+Improve function <link linkend="pg-sync-replication-slots"><function>pg_sync_replication_slots()</function></link> to wait for the synchronization completion (Ajin Cherian, Zhijie Hou)
<ulink url="&commit_baseurl;0d2d4a0ec">§</ulink>
</para>
<listitem>
<para>
-Add optional pid parameter to <function>pg_replication_origin_session_setup()</function> to allow parallelization of <acronym>SQL</acronym>-level replication solutions (Doruk Yilmaz, Hayato Kuroda)
+Add optional pid parameter to <link linkend="pg-replication-origin-session-setup"><function>pg_replication_origin_session_setup()</function></link> to allow parallelization of <acronym>SQL</acronym>-level replication solutions (Doruk Yilmaz, Hayato Kuroda)
<ulink url="&commit_baseurl;5b148706c">§</ulink>
</para>
</listitem>
<para>
This is enabled during <link linkend="sql-createsubscription"><command>CREATE SUBSCRIPTION</command></link>, <link linkend="sql-altersubscription"><command>ALTER SUBSCRIPTION ... REFRESH PUBLICATION</command></link>, and <link linkend="sql-altersubscription"><command>ALTER SUBSCRIPTION ... REFRESH SEQUENCES</command></link>. The latter only updates values, not sequence
-existence. Function <function>pg_get_sequence_data()</function> allows inspection of sequence synchronization.
+existence. Function <link linkend="func-pg-get-sequence-data"><function>pg_get_sequence_data()</function></link> allows inspection of sequence synchronization.
</para>
</listitem>
<listitem>
<para>
-Add column <structname>pg_stat_subscription_stats</structname>.<structfield>sync_seq_error_count</structfield> to report sequence synchronization errors (Vignesh C)
+Add column <link linkend="pg-stat-subscription-stats"><structname>pg_stat_subscription_stats</structname></link>.<link linkend="pg-stat-subscription-stats"><structfield>sync_seq_error_count</structfield></link> to report sequence synchronization errors (Vignesh C)
<ulink url="&commit_baseurl;f6a4c498d">§</ulink>
<ulink url="&commit_baseurl;3edaf29fa">§</ulink>
</para>
<listitem>
<para>
-Rename column sync_error_count to sync_table_error_count in system view <structname>pg_stat_subscription_stats</structname> (Vignesh C)
+Rename column sync_error_count to sync_table_error_count in system view <link linkend="pg-stat-subscription-stats"><structname>pg_stat_subscription_stats</structname></link> (Vignesh C)
<ulink url="&commit_baseurl;3edaf29fa">§</ulink>
</para>
<listitem>
<para>
-Add slot synchronization skip information to <structname>pg_stat_replication_slots</structname> and <structname>pg_replication_slots</structname> (Shlok Kyal)
+Add slot synchronization skip information to <link linkend="pg-stat-replication-slots-view"><structname>pg_stat_replication_slots</structname></link> and <link linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname></link> (Shlok Kyal)
<ulink url="&commit_baseurl;76b78721c">§</ulink>
<ulink url="&commit_baseurl;e68b6adad">§</ulink>
<ulink url="&commit_baseurl;5db6a344a">§</ulink>
</para>
<para>
-Also fix a bug in how <function>GROUPING()</function> handles target list subquery aliases.
+Also fix a bug in how <link linkend="functions-grouping-table"><function>GROUPING()</function></link> handles target list subquery aliases.
</para>
</listitem>
</para>
<para>
-They are l/r/<function>btrim()</function>, <function>lower()</function>, <function>upper()</function>, <function>initcap()</function>, <function>replace()</function>, and <function>split_part()</function>. These are immutable like their non-<acronym>JSON</acronym> string variants.
+They are l/r/<link linkend="functions-string"><function>btrim()</function></link>, <link linkend="functions-string"><function>lower()</function></link>, <link linkend="functions-string"><function>upper()</function></link>, <link linkend="functions-string"><function>initcap()</function></link>, <link linkend="functions-string"><function>replace()</function></link>, and <link linkend="functions-string"><function>split_part()</function></link>. These are immutable like their non-<acronym>JSON</acronym> string variants.
</para>
</listitem>
<listitem>
<para>
-Add functions <function>tid_block()</function> and <function>tid_offset()</function> to extract block numbers and offsets from tid values (Ayush Tiwari)
+Add functions <link linkend="functions-tid"><function>tid_block()</function></link> and <link linkend="functions-tid"><function>tid_offset()</function></link> to extract block numbers and offsets from tid values (Ayush Tiwari)
<ulink url="&commit_baseurl;df6949ccf">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Allow <function>encode()</function> and <function>decode()</function> to process data in base64url and base32hex formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai)
+Allow <link linkend="functions-binarystring"><function>encode()</function></link> and <link linkend="functions-binarystring"><function>decode()</function></link> to process data in base64url and base32hex formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai)
<ulink url="&commit_baseurl;497c1170c">§</ulink>
<ulink url="&commit_baseurl;e752a2ccc">§</ulink>
<ulink url="&commit_baseurl;e1d917182">§</ulink>
</para>
<para>
-The functions are <function>range_minus_multi()</function> and <function>multirange_minus_multi()</function>. This is useful to represent range subtraction results with gaps.
+The functions are <link linkend="range-functions-table"><function>range_minus_multi()</function></link> and <link linkend="multirange-functions-table"><function>multirange_minus_multi()</function></link>. This is useful to represent range subtraction results with gaps.
</para>
</listitem>
<listitem>
<para>
-Add function <function>error_on_null()</function> to return the supplied parameter, or error on <literal>NULL</literal> input (Joel Jacobson)
+Add function <link linkend="functions-comparison-func-table"><function>error_on_null()</function></link> to return the supplied parameter, or error on <literal>NULL</literal> input (Joel Jacobson)
<ulink url="&commit_baseurl;2b75c38b7">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add function <function>pg_get_role_ddl()</function> to output role creation commands (Mario Gonzalez, Bryan Green, Andrew Dunstan, Euler Taveira)
+Add function <link linkend="functions-get-object-ddl-table"><function>pg_get_role_ddl()</function></link> to output role creation commands (Mario Gonzalez, Bryan Green, Andrew Dunstan, Euler Taveira)
<ulink url="&commit_baseurl;76e514ebb">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add function <function>pg_get_tablespace_ddl()</function> to output tablespace creation commands (Nishant Sharma, Manni Wood, Andrew Dunstan, Euler Taveira)
+Add function <link linkend="functions-get-object-ddl-table"><function>pg_get_tablespace_ddl()</function></link> to output tablespace creation commands (Nishant Sharma, Manni Wood, Andrew Dunstan, Euler Taveira)
<ulink url="&commit_baseurl;b99fd9fd7">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add function <function>pg_get_database_ddl()</function> to output database creation commands (Akshay Joshi, Andrew Dunstan, Euler Taveira)
+Add function <link linkend="functions-get-object-ddl-table"><function>pg_get_database_ddl()</function></link> to output database creation commands (Akshay Joshi, Andrew Dunstan, Euler Taveira)
<ulink url="&commit_baseurl;a4f774cf1">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add libpq function <function>PQgetThreadLock()</function> to retrieve the current locking callback (Jacob Champion)
+Add libpq function <link linkend="libpq-threading"><function>PQgetThreadLock()</function></link> to retrieve the current locking callback (Jacob Champion)
<ulink url="&commit_baseurl;b8d768583">§</ulink>
</para>
</listitem>
</para>
<para>
-This is done by setting the <structname>ValidatorModuleResult</structname> structure member error_detail.
+This is done by setting the <link linkend="oauth-validator-callback-validate"><structname>ValidatorModuleResult</structname></link> structure member error_detail.
</para>
</listitem>
<listitem>
<para>
-Change <function>hex_encode()</function> and <function>hex_decode()</function> to use <acronym>SIMD</acronym> <acronym>CPU</acronym> instructions (Nathan Bossart, Chiranmoy Bhattacharya)
+Change <link linkend="functions-binarystring"><function>hex_encode()</function></link> and <link linkend="functions-binarystring"><function>hex_decode()</function></link> to use <acronym>SIMD</acronym> <acronym>CPU</acronym> instructions (Nathan Bossart, Chiranmoy Bhattacharya)
<ulink url="&commit_baseurl;ec8719ccb">§</ulink>
</para>
</listitem>
<listitem>
<para>
-Add simplified and improved shared memory registration function <function>ShmemRequestStruct()</function> (Heikki Linnakangas, Ashutosh Bapat)
+Add simplified and improved shared memory registration function <link linkend="xfunc-shared-addin-at-startup"><function>ShmemRequestStruct()</function></link> (Heikki Linnakangas, Ashutosh Bapat)
<ulink url="&commit_baseurl;283e823f9">§</ulink>
</para>
<para>
-Functions <function>ShmemInitStruct()</function> and <function>ShmemInitHash()</function> remain for backward compatibility.
+Functions <link linkend="xfunc-shared-addin-at-startup"><function>ShmemInitStruct()</function></link> and <link linkend="xfunc-shared-addin-at-startup"><function>ShmemInitHash()</function></link> remain for backward compatibility.
</para>
</listitem>