postgresql/doc/src/sgml
Fujii Masao 9d701e624f Rework EXPLAIN for planner's buffer usage.
Commit ce77abe63c allowed EXPLAIN (BUFFERS) to report the information
on buffer usage during planning phase. However three issues were
reported regarding this feature.

(1) Previously, EXPLAIN option BUFFERS required ANALYZE. So the query
    had to be actually executed by specifying ANALYZE even when we
    want to see only the planner's buffer usage. This was inconvenient
    especially when the query was write one like DELETE.

(2) EXPLAIN included the planner's buffer usage in summary
    information. So SUMMARY option had to be enabled to report that.
    Also this format was confusing.

(3) The output structure for planning information was not consistent
    between TEXT format and the others. For example, "Planning" tag
    was output in JSON format, but not in TEXT format.

For (1), this commit allows us to perform EXPLAIN (BUFFERS) without
ANALYZE to report the planner's buffer usage.

For (2), this commit changed EXPLAIN output so that the planner's
buffer usage is reported before summary information.

For (3), this commit made the output structure for planning
information more consistent between the formats.

Back-patch to v13 where the planner's buffer usage was allowed to
be reported in EXPLAIN.

Reported-by: Pierre Giraud, David Rowley
Author: Fujii Masao
Reviewed-by: David Rowley, Julien Rouhaud, Pierre Giraud
Discussion: https://postgr.es/m/07b226e6-fa49-687f-b110-b7c37572f69e@dalibo.com
2020-08-21 20:48:59 +09:00
..
images Replace genetic algorithm ASCII-art with a real figure 2019-08-19 12:05:38 -04:00
keywords Update SQL keywords list to SQL:2016 2019-05-14 15:44:37 +02:00
ref Rework EXPLAIN for planner's buffer usage. 2020-08-21 20:48:59 +09:00
.gitignore doc: Generate keywords table automatically 2019-05-07 15:29:39 +02:00
acronyms.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
adminpack.sgml Doc: update remaining tables of functions/operators for new layout. 2020-05-07 14:25:25 -04:00
advanced.sgml doc: clarify "state" table reference in tutorial 2020-08-05 17:12:10 -04:00
amcheck.sgml docs: replace 'master' with 'primary' where appropriate. 2020-07-08 13:03:32 -07:00
arch-dev.sgml docs: replace 'master process' with 'supervisor process' where appropriate. 2020-07-08 13:20:15 -07:00
array.sgml Doc: correct nitpicky mistakes in array_position/array_positions examples. 2020-06-25 13:28:30 -04:00
auth-delay.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
auto-explain.sgml Fix collection of typos and grammar mistakes in the tree, volume 2 2020-04-14 14:45:43 +09:00
backup-manifest.sgml doc: Spell checking 2020-07-05 15:37:57 +02:00
backup.sgml docs: replace 'master' with 'primary' where appropriate. 2020-07-08 13:03:32 -07:00
bgworker.sgml Doc: marginal hacking to remove some PDF build warnings. 2020-05-10 16:20:28 -04:00
biblio.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
bki.sgml Be more careful about marking catalog columns NOT NULL by default. 2020-07-21 13:03:48 -04:00
bloom.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
brin.sgml doc: Fix inconsistencies in GIN, BRIN and SP-GiST for optional opclass methods 2020-07-08 10:41:53 +09:00
btree-gin.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
btree-gist.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
btree.sgml Language fixes for docs related to opclass options 2020-06-21 04:51:32 +03:00
catalogs.sgml Add pg_backend_memory_contexts system view. 2020-08-19 15:34:43 +09:00
charset.sgml Doc: remove now-redundant align specifications in colspecs. 2020-05-06 15:58:23 -04:00
citext.sgml Add deduplication to nbtree. 2020-02-26 13:05:30 -08:00
client-auth.sgml gss: add missing references to hostgssenc and hostnogssenc 2020-05-25 20:19:28 -04:00
color.sgml Document color support 2020-03-29 11:15:11 +02:00
config.sgml Add %P to log_line_prefix for parallel group leader 2020-08-03 13:38:48 +09:00
contrib-spi.sgml Remove timetravel extension. 2018-10-11 11:43:56 -07:00
contrib.sgml Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
cube.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
custom-scan.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00
datatype.sgml Doc: fix obsolete info about allowed range of TZ offsets in timetz. 2020-08-03 13:11:16 -04:00
datetime.sgml Remove support for timezone "posixrules" file. 2020-06-29 18:55:01 -04:00
dblink.sgml Doc: marginal hacking to remove some PDF build warnings. 2020-05-10 16:20:28 -04:00
ddl.sgml docs: replace 'master' with 'root' where appropriate. 2020-07-08 13:08:34 -07:00
dfunc.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
dict-int.sgml Add an "absval" parameter to allow contrib/dict_int to ignore signs. 2020-03-08 18:35:06 -04:00
dict-xsyn.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
diskusage.sgml Fix many typos and inconsistencies 2019-07-01 10:00:23 +09:00
dml.sgml Fix typo 2018-06-20 16:06:03 +02:00
docguide.sgml Recreate website's formatting for "website" doc builds. 2020-02-14 18:38:35 -08:00
earthdistance.sgml Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
ecpg.sgml Fix behavior of ecpg's "EXEC SQL elif name". 2020-08-03 09:46:12 -04:00
errcodes.sgml Doc: remove now-redundant align specifications in colspecs. 2020-05-06 15:58:23 -04:00
event-trigger.sgml Doc: further fooling-about with rendering of tables in PDF output. 2020-05-06 12:23:54 -04:00
extend.sgml Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
external-projects.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
fdwhandler.sgml doc: Spell checking 2020-07-05 15:37:57 +02:00
features.sgml doc: Clean up title case use 2020-06-07 13:18:36 +02:00
file-fdw.sgml docs: add backend_type to file-fdw CSV log example 2020-03-23 18:38:42 -04:00
filelist.sgml Stamp HEAD as 14devel. 2020-06-07 17:16:30 -04:00
func.sgml Doc: improve examples for json_populate_record() and related functions. 2020-08-13 20:00:38 -04:00
fuzzystrmatch.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
generate-errcodes-table.pl Update copyrights for 2020 2020-01-01 12:21:45 -05:00
generate-keywords-table.pl Doc: fix remaining over-length entries in SQL keywords table. 2020-05-11 20:03:55 -04:00
generic-wal.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
geqo.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
gin.sgml doc: Fix inconsistencies in GIN, BRIN and SP-GiST for optional opclass methods 2020-07-08 10:41:53 +09:00
gist.sgml Language fixes for docs related to opclass options 2020-06-21 04:51:32 +03:00
glossary.sgml Glossary: Add term "base backup" 2020-07-21 13:11:23 -04:00
high-availability.sgml doc: Fix description about bgwriter and checkpoint in HA section 2020-08-17 10:23:17 +09:00
history.sgml doc: Use proper em and en dashes 2019-10-25 20:39:41 +02:00
hstore.sgml Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
indexam.sgml Invent "amadjustmembers" AM method for validating opclass members. 2020-08-01 17:12:47 -04:00
indices.sgml Fix minor issues in psql's new \dAc and related commands. 2020-08-02 17:00:26 -04:00
info.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
information_schema.sgml Doc: reformat catalog/view description tables. 2020-05-13 23:03:39 -04:00
install-windows.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
installation.sgml Doc: update or remove dead external links. 2020-07-10 13:16:19 -04:00
intagg.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
intarray.sgml Remove <@ from contrib/intarray's GiST operator classes. 2020-08-08 17:26:29 -04:00
intro.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
isn.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
jit.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
json.sgml Doc: further fooling-about with rendering of tables in PDF output. 2020-05-06 12:23:54 -04:00
keywords.sgml doc: Generate keywords table automatically 2019-05-07 15:29:39 +02:00
legal.sgml Update copyrights for 2020 2020-01-01 12:21:45 -05:00
libpq.sgml Doc: update or remove dead external links. 2020-07-10 13:16:19 -04:00
limits.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00
lo.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
lobj.sgml Doc: marginal hacking to remove some PDF build warnings. 2020-05-10 16:20:28 -04:00
logical-replication.sgml Document clashes between logical replication and untrusted users. 2020-08-10 09:22:54 -07:00
logicaldecoding.sgml Implement streaming mode in ReorderBuffer. 2020-08-08 07:47:06 +05:30
ltree.sgml Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
maintenance.sgml Change XID and mxact limits to warn at 40M and stop at 3M. 2020-08-01 15:31:01 -07:00
Makefile doc: Fix image use in PDF build with vpath 2019-08-19 10:30:47 +02:00
manage-ag.sgml doc: clarify hierarchy of objects: global, db, schema, etc. 2020-03-31 18:10:39 -04:00
mk_feature_tables.pl Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
monitoring.sgml Prevent concurrent SimpleLruTruncate() for any given SLRU. 2020-08-15 10:15:53 -07:00
mvcc.sgml docs: replace 'master' with 'primary' where appropriate. 2020-07-08 13:03:32 -07:00
nls.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
notation.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
oid2name.sgml Doc: fix some description of environment variables with frontend tools 2020-03-09 10:53:22 +09:00
pageinspect.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
parallel.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
passwordcheck.sgml doc: Update redirecting links 2018-07-16 10:48:05 +02:00
perform.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
pgbuffercache.sgml Doc: reformat catalog/view description tables. 2020-05-13 23:03:39 -04:00
pgcrypto.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
pgfreespacemap.sgml Revert "Avoid the creation of the free space map for small heap relations". 2019-05-07 09:30:24 +05:30
pgprewarm.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
pgrowlocks.sgml Fix documentation of pgrowlocks using "lock_type" instead of "modes" 2018-10-02 16:34:41 +09:00
pgstandby.sgml docs: replace 'master' with 'primary' where appropriate. 2020-07-08 13:03:32 -07:00
pgstatstatements.sgml doc: Add note about possible performance overhead by enabling track_planning. 2020-07-06 14:27:09 +09:00
pgstattuple.sgml Revert "Avoid the creation of the free space map for small heap relations". 2019-05-07 09:30:24 +05:30
pgtrgm.sgml Doc: update remaining tables of functions/operators for new layout. 2020-05-07 14:25:25 -04:00
pgvisibility.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
planstats.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
plhandler.sgml Add PL/Sample to src/test/modules/ 2020-08-18 11:10:50 +09:00
plperl.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
plpgsql.sgml doc: Fix incorrect reference to textout in plpgsql examples 2020-07-05 19:35:56 +09:00
plpython.sgml doc: remove xreflabels from commits 75fcdd2ae2 and 85af628da5 2020-06-11 18:19:25 -04:00
pltcl.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
postgres-fdw.sgml Doc: Fix some inconsistencies with markups 2020-05-14 20:14:58 +09:00
postgres.sgml Document the backup manifest file format. 2020-04-14 13:41:32 -04:00
problems.sgml Fix inconsistencies and typos in the tree 2019-07-22 10:01:50 +09:00
protocol.sgml docs: replace 'master' with 'primary' where appropriate. 2020-07-08 13:03:32 -07:00
queries.sgml Doc: fix "Unresolved ID reference" warnings, clean up man page cross-refs. 2020-05-11 14:15:55 -04:00
query.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
rangetypes.sgml docs: clarify infinite range values from data-type infinities 2019-12-27 14:33:30 -05:00
README.links doc: document problems with using xreflabel in XML docs 2020-06-11 18:44:49 -04:00
reference.sgml Rename pg_validatebackup to pg_verifybackup. 2020-04-12 11:26:05 -04:00
regress.sgml Run UTF8-requiring collation tests by default 2019-07-31 09:46:51 +02:00
release-14.sgml Stamp HEAD as 14devel. 2020-06-07 17:16:30 -04:00
release.sgml Stamp HEAD as 14devel. 2020-06-07 17:16:30 -04:00
replication-origins.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
rowtypes.sgml docs: remove use of escape strings and use bytea hex output 2018-09-21 19:55:07 -04:00
rules.sgml Clarify that pg_trgm is used in example 2020-01-09 10:48:22 +01:00
runtime.sgml Add hash_mem_multiplier GUC. 2020-07-29 14:14:58 -07:00
seg.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
sepgsql.sgml Doc: update remaining tables of functions/operators for new layout. 2020-05-07 14:25:25 -04:00
sourcerepo.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00
sources.sgml Re-implement the ereport() macro using __VA_ARGS__. 2020-03-24 11:49:00 -04:00
spgist.sgml doc: Fix inconsistencies in GIN, BRIN and SP-GiST for optional opclass methods 2020-07-08 10:41:53 +09:00
spi.sgml Avoid using a cursor in plpgsql's RETURN QUERY statement. 2020-06-12 12:14:32 -04:00
sslinfo.sgml doc: Update the layout of "Viewing Statistics" section. 2020-05-29 17:14:33 +09:00
standalone-install.xml Doc: tweak installation doc edits made by commit 76c2af926. 2019-09-06 11:24:42 -04:00
standalone-profile.xsl Update to DocBook 4.5 2019-08-13 08:40:17 +02:00
start.sgml docs: replace 'master process' with 'supervisor process' where appropriate. 2020-07-08 13:20:15 -07:00
storage.sgml doc: remove xreflabels from commits 75fcdd2ae2 and 85af628da5 2020-06-11 18:19:25 -04:00
stylesheet-common.xsl Doc: re-re-revise markup for tables of functions. 2020-04-30 00:34:12 -04:00
stylesheet-fo.xsl Doc: reformat catalog/view description tables. 2020-05-13 23:03:39 -04:00
stylesheet-hh.xsl doc: Add some images 2019-03-27 23:10:23 +01:00
stylesheet-html-common.xsl Recreate website's formatting for "website" doc builds. 2020-02-14 18:38:35 -08:00
stylesheet-html-nochunk.xsl doc: Add some images 2019-03-27 23:10:23 +01:00
stylesheet-man.xsl doc: Improve man build speed 2018-02-28 09:26:36 -05:00
stylesheet-speedup-common.xsl doc: Further speed improvements for HTML XSLT build 2016-12-22 15:41:44 -05:00
stylesheet-speedup-xhtml.xsl doc: Further speed improvements for HTML XSLT build 2016-12-22 15:41:44 -05:00
stylesheet-text.xsl Create INSTALL file via XSLT 2017-03-08 08:41:23 -05:00
stylesheet.css Doc: reformat catalog/view description tables. 2020-05-13 23:03:39 -04:00
stylesheet.xsl Recreate website's formatting for "website" doc builds. 2020-02-14 18:38:35 -08:00
syntax.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
tableam.sgml docs: correct typo-ed path to heapam_handler.c. 2019-04-17 17:31:54 -07:00
tablefunc.sgml Doc: update remaining tables of functions/operators for new layout. 2020-05-07 14:25:25 -04:00
tablesample-method.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00
tcn.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
test-decoding.sgml Implement streaming mode in ReorderBuffer. 2020-08-08 07:47:06 +05:30
textsearch.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
trigger.sgml Enable BEFORE row-level triggers for partitioned tables 2020-03-18 18:58:05 -03:00
tsm-system-rows.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
tsm-system-time.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
typeconv.sgml Doc: fix description of UNION/CASE/etc type unification. 2020-08-17 15:40:07 -04:00
unaccent.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
user-manag.sgml Doc: further fooling-about with rendering of tables in PDF output. 2020-05-06 12:23:54 -04:00
uuid-ossp.sgml Doc: update remaining tables of functions/operators for new layout. 2020-05-07 14:25:25 -04:00
vacuumlo.sgml doc: remove xreflabels from commits 75fcdd2ae2 and 85af628da5 2020-06-11 18:19:25 -04:00
wal.sgml Rename wal_keep_segments to wal_keep_size. 2020-07-20 13:30:18 +09:00
xaggr.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00
xfunc.sgml Doc: further fooling-about with rendering of tables in PDF output. 2020-05-06 12:23:54 -04:00
xindex.sgml Language fixes for docs related to opclass options 2020-06-21 04:51:32 +03:00
xml2.sgml Doc: update remaining tables of functions/operators for new layout. 2020-05-07 14:25:25 -04:00
xoper.sgml Improve selectivity estimation for assorted match-style operators. 2020-04-01 10:32:33 -04:00
xplang.sgml doc: Remove line breaks after <title> 2020-06-07 13:12:08 +02:00
xtypes.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00

<!-- doc/src/sgml/README.links -->

Linking within DocBook documents can be confusing, so here is a summary:


Intra-document Linking
----------------------

<xref>
	use to get chapter/section number from the title of the target
	link, or xreflabel if defined at the target, or refentrytitle if target
        is a refentry;  has no close tag
	http://www.oasis-open.org/docbook/documentation/reference/html/xref.html

linkend=
	controls the target of the link/xref, required

endterm=
	for <xref>, allows the text of the link/xref to be taken from a
	different link target title

<link>
	use to supply text for the link, only uses linkend, requires </link>
	http://www.oasis-open.org/docbook/documentation/reference/html/link.html


External Linking
----------------

<ulink>
	like <link>, but uses a URL (not a document target);  requires
	</ulink>; if no text is specified, the URL appears as the link
	text
	http://www.oasis-open.org/docbook/documentation/reference/html/ulink.html

url=
	used by <ulink> to specify the URL, required


Guidelines
----------

- For an internal link, if you want to supply text, use <link>, else
  <xref>.

- Specific nouns like GUC variables, SQL commands, and contrib modules
  usually have xreflabels.

- For an external link, use <ulink>, with or without link text.

- xreflabels added to tags prevent the chapter/section for id's from being
  referenced;  only the xreflabel is accessible.  Therefore, use xreflabels
  only when linking is common, and chapter/section information is unneeded.