postgresql/doc/src/sgml
Michael Paquier 4019f725f5 Add support for lock statistics in pgstats
This commit adds a new stats kind, called PGSTAT_KIND_LOCK, implementing
statistics for lock tags, as reported by pg_locks.  The implementation
is fixed-sized, as the data is caped based on the number of lock tags in
LockTagType.

The new statistics kind records the following fields, providing insight
regarding lock behavior, while avoiding impact on performance-critical
code paths (such as fast-path lock acquisition):
- waits and wait_time: respectively track the number of times a lock
required waiting and the total time spent acquiring it.  These metrics
are only collected once a lock is successfully acquired and after
deadlock_timeout has been exceeded.
fastpath_exceeded: counts how often a lock could not be acquired via
the fast path due to the max_locks_per_transaction slot limits.

A new view called pg_stat_lock can be used to access this data, coupled
with a SQL function called pg_stat_get_lock().

Bump stat file format PGSTAT_FILE_FORMAT_ID.
Bump catalog version.

Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/aIyNxBWFCybgBZBS%40ip-10-97-1-34.eu-west-3.compute.internal
2026-03-24 15:32:09 +09:00
..
func SQL Property Graph Queries (SQL/PGQ) 2026-03-16 10:14:18 +01:00
images doc: Update docs images README with required ditaa version 2026-02-13 11:50:17 +01:00
keywords SQL Property Graph Queries (SQL/PGQ) 2026-03-16 10:14:18 +01:00
ref doc: make "datadir" argument specification more specific 2026-03-23 12:13:31 -04:00
.gitignore Stop generating plain-text INSTALL instructions. 2023-12-22 13:32:15 -05:00
acronyms.sgml docs: Add acronym and glossary entries for I/O and AIO 2025-04-01 13:30:33 -04:00
advanced.sgml doc: consistently use "structname" and "structfield" markup 2025-11-08 09:49:43 -05:00
amcheck.sgml amcheck: Fix snapshot usage in bt_index_parent_check 2025-12-04 18:12:08 +01:00
appendix-obsolete-default-roles.sgml Fix file references inside some SGML comments 2022-06-20 14:33:41 +02:00
appendix-obsolete-pgreceivexlog.sgml Fix file references inside some SGML comments 2022-06-20 14:33:41 +02:00
appendix-obsolete-pgresetxlog.sgml Fix file references inside some SGML comments 2022-06-20 14:33:41 +02:00
appendix-obsolete-pgxlogdump.sgml Fix file references inside some SGML comments 2022-06-20 14:33:41 +02:00
appendix-obsolete-recovery-config.sgml Remove promote_trigger_file. 2022-11-29 12:08:38 +13:00
appendix-obsolete.sgml Revert "Rename contrib module basic_archive to basic_wal_module" 2023-01-26 09:13:39 +09:00
arch-dev.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
archive-modules.sgml Add built-in ERROR handling for archive callbacks. 2024-04-02 22:28:11 -05:00
array.sgml Improve readability and error detection of array_in(). 2023-11-13 13:01:51 -05:00
auth-delay.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
auto-explain.sgml EXPLAIN: Always use two fractional digits for row counts. 2025-02-27 11:27:16 -05:00
backup-manifest.sgml doc: Standardize use of dashes in references to CRC and SHA. 2024-08-09 13:16:33 -05:00
backup.sgml doc: double-quote use of %f, %p, and %r in literal commands. 2025-11-14 09:08:53 -05:00
basebackup-to-shell.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
basic-archive.sgml Revert "Rename contrib module basic_archive to basic_wal_module" 2023-01-26 09:13:39 +09:00
bgworker.sgml Use standard die() handler for SIGTERM in bgworkers 2026-02-18 19:59:34 +02:00
biblio.sgml doc: Add links to olsen93 and ong90 in bibliography 2025-02-21 11:28:42 +01:00
bki.sgml Simplify creation of built-in functions with default arguments. 2026-02-18 14:14:44 -05:00
bloom.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
brin.sgml docs: Merge separate chapters on built-in index AMs into one. 2024-04-05 10:34:04 -04:00
btree-gin.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
btree-gist.sgml Mark GiST inet_ops as opcdefault, and deal with ensuing fallout. 2026-01-08 14:03:56 -05:00
btree.sgml Add nbtree skip scan optimization. 2025-04-04 12:27:04 -04:00
catalogs.sgml SQL Property Graph Queries (SQL/PGQ) 2026-03-16 10:14:18 +01:00
charset.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
citext.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
client-auth.sgml Update pg_hba.conf example to reflect MD5 deprecation 2025-12-19 15:48:18 +07:00
color.sgml Add color support for new frontend detail/hint messages 2022-04-11 17:36:44 +02:00
config.sgml Improve validation of recovery_target_xid GUC values. 2026-03-05 21:40:32 +09:00
contrib-spi.sgml Move contrib/spi testing from core regression tests to contrib/spi. 2025-04-08 19:12:03 -04:00
contrib.sgml Add pg_plan_advice contrib module. 2026-03-12 13:00:43 -04:00
cube.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
custom-rmgr.sgml docs: Consolidate into new "WAL for Extensions" chapter. 2024-04-15 15:57:13 -04:00
custom-scan.sgml Doc: Improve documentation for creating custom scan paths. 2023-08-30 17:45:00 +09:00
datatype.sgml Allow explicit casting between bytea and uuid. 2026-03-19 13:51:50 -07:00
datetime.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
dblink.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
ddl.sgml SQL Property Graph Queries (SQL/PGQ) 2026-03-16 10:14:18 +01:00
dfunc.sgml Remove traces of support for Sun Studio compiler 2025-09-12 07:39:05 +02:00
dict-int.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
dict-xsyn.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
dml.sgml Add support for INSERT ... ON CONFLICT DO SELECT. 2026-02-12 09:57:04 +00:00
docguide.sgml doc: Remove dead link to NewbieDoc Docbook Guide 2025-06-24 11:49:37 +02:00
earthdistance.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
ecpg.sgml Force standard_conforming_strings to always be ON. 2026-01-21 15:08:38 -05:00
errcodes.sgml Doc: remove now-redundant align specifications in colspecs. 2020-05-06 15:58:23 -04:00
event-trigger.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
extend.sgml Make "directory" setting work with extension_control_path 2025-05-02 16:35:48 +02:00
external-projects.sgml doc: Replace list of drivers and PLs with wiki link 2023-08-23 14:13:07 +02:00
fdwhandler.sgml Add support for INSERT ... ON CONFLICT DO SELECT. 2026-02-12 09:57:04 +00:00
features.sgml SQL Property Graph Queries (SQL/PGQ) 2026-03-16 10:14:18 +01:00
file-fdw.sgml file_fdw: Support multi-line HEADER option. 2026-01-22 10:14:12 +09:00
filelist.sgml Add pg_plan_advice contrib module. 2026-03-12 13:00:43 -04:00
fuzzystrmatch.sgml Add support for Daitch-Mokotoff Soundex in contrib/fuzzystrmatch. 2023-04-07 17:32:26 -04:00
generate-errcodes-table.pl Update copyright for 2026 2026-01-01 13:24:10 -05:00
generate-keywords-table.pl Update copyright for 2026 2026-01-01 13:24:10 -05:00
generate-targets-meson.pl Update copyright for 2026 2026-01-01 13:24:10 -05:00
generic-wal.sgml docs: Consolidate into new "WAL for Extensions" chapter. 2024-04-15 15:57:13 -04:00
geqo.sgml Doc: add XML ID attributes to <sectN> and <varlistentry> tags. 2023-01-09 15:08:24 -05:00
gin.sgml Add cross-type comparisons to contrib/btree_gin. 2025-07-03 16:24:31 -04:00
gist.sgml Mark commented out code as unused 2026-01-22 12:44:07 +01:00
glossary.sgml doc: Add glossary and index entries for GUC. 2026-01-07 13:58:07 +09:00
hash.sgml Doc: fix typo in hash index documentation 2025-12-09 14:41:30 +13:00
high-availability.sgml Further doc updates to reflect MD5 deprecation 2026-01-07 12:00:05 +07:00
history.sgml Doc: add missing punctuation 2026-01-04 21:12:23 +13:00
hstore.sgml Force standard_conforming_strings to always be ON. 2026-01-21 15:08:38 -05:00
indexam.sgml Change IndexAmRoutines to be statically-allocated structs. 2025-12-30 18:26:23 -05:00
indextypes.sgml docs: Merge separate chapters on built-in index AMs into one. 2024-04-05 10:34:04 -04:00
indices.sgml doc: consistently use "structname" and "structfield" markup 2025-11-08 09:49:43 -05:00
info.sgml
information_schema.sgml SQL Property Graph Queries (SQL/PGQ) 2026-03-16 10:14:18 +01:00
install-binaries.sgml Expand installation documentation to cover binary installations 2020-10-06 14:15:32 +02:00
installation.sgml Revert "Change default value of default_toast_compression to "lz4"" 2026-03-05 08:25:35 +09:00
intagg.sgml doc, intagg: fix one-to-many mention to many-to-many 2023-12-07 19:36:52 -05:00
intarray.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
intro.sgml doc: add links to Postgres features intro 2023-10-28 14:02:46 -04:00
isn.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
jit.sgml EXPLAIN: Always use two fractional digits for row counts. 2025-02-27 11:27:16 -05:00
json.sgml doc: Mention PASSING support for jsonpath variables 2026-02-13 12:12:11 +01:00
keywords.sgml Allow most keywords to be used as column labels without requiring AS. 2020-09-18 16:46:36 -04:00
legal.sgml Update copyright for 2026 2026-01-01 13:24:10 -05:00
libpq.sgml libpq: Introduce PQAUTHDATA_OAUTH_BEARER_TOKEN_V2 2026-03-06 12:05:51 -08:00
limits.sgml Document limit on the number of out-of-line values per table 2024-08-20 13:36:33 +07:00
lo.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
lobj.sgml Update copyright for 2026 2026-01-01 13:24:10 -05:00
logical-replication.sgml CREATE SUBSCRIPTION ... SERVER. 2026-03-06 08:27:56 -08:00
logicaldecoding.sgml Standardize replication origin naming to use "ReplOrigin". 2026-01-28 11:03:29 -08:00
ltree.sgml docs: fix text by adding/removing parentheses 2025-11-07 22:19:09 -05:00
maintenance.sgml Bump transaction/multixact ID warning limits to 100M. 2026-03-20 14:15:33 -05:00
Makefile Revert "Improve docs syntax checking" 2025-10-06 07:53:31 -04:00
manage-ag.sgml doc: improve tablespace example query and link to helper funcs. 2024-11-01 15:54:16 -04:00
meson.build meson: Add target for generating docs images 2026-02-13 11:50:14 +01:00
mk_feature_tables.pl Make all Perl warnings fatal 2023-12-29 18:20:00 +01:00
monitoring.sgml Add support for lock statistics in pgstats 2026-03-24 15:32:09 +09:00
mvcc.sgml Add support for INSERT ... ON CONFLICT DO SELECT. 2026-02-12 09:57:04 +00:00
nls.sgml doc: Fix some typos and grammar 2023-10-25 09:40:55 +09:00
notation.sgml doc: clarify syntax notation, particularly parentheses 2022-02-02 21:53:52 -05:00
oauth-validators.sgml oauth: Improve validator docs on interruptibility 2025-03-19 16:58:06 +13:00
oid2name.sgml oid2name: Add relation path to the information provided by -x/--extended 2026-02-05 09:02:12 +09:00
pageinspect.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
parallel.sgml Add parallelism support for TID Range Scans 2025-11-27 14:05:04 +13:00
passwordcheck.sgml Add passwordcheck.min_password_length. 2025-01-07 15:06:40 -06:00
perform.sgml Doc: document how EXPLAIN ANALYZE reports parallel queries. 2026-03-23 14:48:58 -04:00
pgbuffercache.sgml doc: Fix titles of some pg_buffercache functions. 2025-12-09 11:01:38 -06:00
pgcrypto.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
pgfreespacemap.sgml doc: Correct description of values used in FSM for indexes 2025-03-27 10:20:41 +09:00
pglogicalinspect.sgml Standardize LSN formatting by zero padding 2025-07-07 13:57:43 +02:00
pgoverexplain.sgml doc: Use proper tags in pg_overexplain documentation. 2025-12-25 00:27:19 +09:00
pgplanadvice.sgml Add pg_plan_advice contrib module. 2026-03-12 13:00:43 -04:00
pgprewarm.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
pgrowlocks.sgml pgrowlocks: change lock mode output labels for consistency 2023-09-26 17:41:48 -04:00
pgstatstatements.sgml pg_stat_statements: Add counters for generic and custom plans 2025-07-31 11:37:37 +09:00
pgstattuple.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
pgsurgery.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
pgtrgm.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
pgvisibility.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
pgwalinspect.sgml Standardize LSN formatting by zero padding 2025-07-07 13:57:43 +02:00
planstats.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
plhandler.sgml doc: use wording "restore" instead of "reload" of dumps 2022-07-21 14:55:23 -04:00
plperl.sgml doc: consistently use "structname" and "structfield" markup 2025-11-08 09:49:43 -05:00
plpgsql.sgml Doc: include MERGE in variable substitution command list 2025-11-17 10:51:26 +13:00
plpython.sgml doc: revert "xreflabel" used for PL/Python & libpq chapters 2026-01-19 22:59:10 -05:00
pltcl.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
postgres-fdw.sgml CREATE SUBSCRIPTION ... SERVER. 2026-03-06 08:27:56 -08:00
postgres.sgml doc: Assorted documentation improvements 2025-11-20 15:04:41 +01:00
problems.sgml doc: use more accurate URL for bug reporting 2024-11-04 15:08:01 -05:00
protocol.sgml libpq: Grease the protocol by default 2026-02-23 10:48:20 -08:00
queries.sgml SQL Property Graph Queries (SQL/PGQ) 2026-03-16 10:14:18 +01:00
query.sgml doc: Add example file for COPY 2025-07-17 00:21:18 +02:00
rangetypes.sgml Revert 29854ee8d1 due to buildfarm failures 2021-06-15 21:44:40 +03:00
README.links doc: mention <link> can be inside of <command>, but not <xref> 2021-04-22 16:01:17 -04:00
README.non-ASCII doc: update guidelines on non-ASCII characters in docs 2025-05-03 14:45:26 -04:00
reference.sgml SQL Property Graph Queries (SQL/PGQ) 2026-03-16 10:14:18 +01:00
regress.sgml test_saslprep: Test module for SASLprep() 2026-03-19 13:03:30 +09:00
release-19.sgml Stamp HEAD as 19devel. 2025-06-29 22:28:10 -04:00
release.sgml Stamp HEAD as 19devel. 2025-06-29 22:28:10 -04:00
replication-origins.sgml Refer to replication origin roident as "ID" in user facing messages and docs 2022-08-18 08:57:13 +07:00
rowtypes.sgml Doc: remove obsolete, confused <note> about rowtype I/O syntax. 2025-12-31 13:19:27 -05:00
rules.sgml doc: consistently use "structname" and "structfield" markup 2025-11-08 09:49:43 -05:00
runtime.sgml Doc: minor improvements to SNI documentation. 2026-03-23 15:33:51 -04:00
seg.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
sepgsql.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
sourcerepo.sgml doc: Add index entry for Git. 2026-01-07 13:57:36 +09:00
sources.sgml Provide more-specific error details/hints for function lookup failures. 2025-09-16 12:17:02 -04:00
spgist.sgml docs: Merge separate chapters on built-in index AMs into one. 2024-04-05 10:34:04 -04:00
spi.sgml Mark function arguments of type "Datum *" as "const Datum *" where possible 2025-10-31 10:47:25 +01:00
sslinfo.sgml Revert "Add notBefore and notAfter to SSL cert info display" 2024-03-22 22:58:41 +01:00
start.sgml doc: clarify create database in start docs uses command line 2024-08-19 19:22:10 -04:00
storage.sgml Improve type handling of varlena structures 2026-02-11 07:33:24 +09:00
stylesheet-common.xsl Fix documentation build with older docbook-xsl 2024-02-08 11:38:46 +01:00
stylesheet-fo.xsl Improve PDF documentation margins 2025-08-13 15:50:14 +02:00
stylesheet-html-common.xsl Fix documentation build with older docbook-xsl 2024-02-08 11:38:46 +01:00
stylesheet-html-nochunk.xsl docs: html: load stylesheet via custom.css.source 2023-04-04 21:29:45 -07:00
stylesheet-man.xsl Now that we have non-Latin1 SGML detection, restore Latin1 chars 2024-12-03 17:09:49 -05:00
stylesheet-speedup-common.xsl
stylesheet-speedup-xhtml.xsl
stylesheet-text.xsl Fix XML namespace declarations 2022-02-15 11:13:49 +01:00
stylesheet.css doc: Make HTML ids discoverable 2023-04-13 10:16:33 +02:00
stylesheet.css.xml docs: html: load stylesheet via custom.css.source 2023-04-04 21:29:45 -07:00
stylesheet.xsl docs: html: load stylesheet via custom.css.source 2023-04-04 21:29:45 -07:00
syntax.sgml Force standard_conforming_strings to always be ON. 2026-01-21 15:08:38 -05:00
system-views.sgml Add more columns to pg_stats, pg_stats_ext, and pg_stats_ext_exprs. 2026-03-17 09:26:27 -05:00
tableam.sgml doc: Add minimal C and SQL example to add a custom table AM handler 2024-10-07 15:47:40 +09:00
tablefunc.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
tablesample-method.sgml Use the correct article for abbreviations 2021-06-11 13:38:04 +12:00
targets-meson.txt meson: Add headerscheck and cpluspluscheck targets 2026-03-18 11:27:43 +01:00
tcn.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
test-decoding.sgml Standardize LSN formatting by zero padding 2025-07-07 13:57:43 +02:00
textsearch.sgml Update to latest Snowball sources. 2026-01-05 15:22:37 -05:00
trigger.sgml docs: fix text by adding/removing parentheses 2025-11-07 22:19:09 -05:00
tsm-system-rows.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
tsm-system-time.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
typeconv.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
unaccent.sgml Doc: use uppercase keywords in SQLs 2025-11-06 16:03:02 +13:00
user-manag.sgml Allow pg_{read,write}_all_data to access large objects. 2026-02-23 14:55:21 -06:00
uuid-ossp.sgml Doc: Update ulinks to RFC documents to avoid redirect 2024-04-10 13:53:25 +02:00
vacuumlo.sgml doc: remove xreflabels from commits 75fcdd2ae2 and 85af628da5 2020-06-11 18:19:25 -04:00
version.sgml.in meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
wal-for-extensions.sgml docs: Consolidate into new "WAL for Extensions" chapter. 2024-04-15 15:57:13 -04:00
wal.sgml Re-add GUC track_wal_io_timing 2025-02-26 09:49:59 +09:00
xact.sgml Replace BackendIds with 0-based ProcNumbers 2024-03-03 19:38:22 +02:00
xaggr.sgml Remove trailing whitespace from *.sgml files. 2022-04-20 11:04:49 -04:00
xfunc.sgml doc: Slightly correct advice on C/C++ linkage 2026-01-14 15:05:29 +01:00
xindex.sgml Rename gist stratnum support function 2025-06-02 08:41:27 +02:00
xml2.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
xmltools_dep_wrapper meson: docs: Add xml{lint,proc} wrapper to collect dependencies 2022-10-05 09:56:05 -07:00
xoper.sgml doc: Some copy-editing around prefix operators 2025-06-30 10:38:43 +02:00
xplang.sgml Improve <xref> vs. <command> formatting in the documentation 2020-10-03 16:40:02 +02:00
xtypes.sgml Use palloc_object() and palloc_array() in more areas of the tree 2025-12-09 14:53:17 +09:00

<!-- doc/src/sgml/README.non-ASCII -->

Representation of non-ASCII characters
--------------------------------------

Find non-ASCII characters using:

        grep --recursive --color='auto' -P '[\x80-\xFF]' .

Convert to HTML4 named entity (&) escapes
-----------------------------------------

We support several output formats:

*  html (supports all Unicode characters)
*  man (supports all Unicode characters)
*  pdf (supports only Latin-1 characters)
*  info

While some output formatting tools support all Unicode characters,
others only support Latin-1 characters.  Specifically, the PDF rendering
engine can only display Latin-1 characters;  non-Latin-1 Unicode
characters are displayed as "###".

Therefore, in the SGML files, we can only use Latin-1 characters.  We
can use UTF8 representations of Latin-1 characters, or HTML entities of
Latin-1 characters, e.g., &Aacute;lvaro.

Do not use UTF numeric character escapes (&#nnn;).

When building the PDF docs, problem characters will appear as warnings.

HTML entities
        official:      http://www.w3.org/TR/html4/sgml/entities.html
        one page:      http://www.zipcon.net/~swhite/docs/computers/browsers/entities_page.html
        other lists:   http://www.zipcon.net/~swhite/docs/computers/browsers/entities.html
                       http://www.zipcon.net/~swhite/docs/computers/browsers/entities_page.html
                       https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references