Doc: improve documentation about run-time pruning's effects on EXPLAIN.

Tatsuo Ishii complained that this para wasn't very intelligible.
Try to make it better.

Discussion: https://postgr.es/m/20191207.200500.989741087350666720.t-ishii@sraoss.co.jp
This commit is contained in:
Tom Lane 2019-12-08 10:36:29 -05:00
parent e75b1e3371
commit a395e21e98
1 changed files with 10 additions and 9 deletions

View File

@ -896,15 +896,16 @@ EXPLAIN ANALYZE SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2 > 9000
</para>
<para>
Generally, the <command>EXPLAIN</command> output will display details for
every plan node which was generated by the query planner. However, there
are cases where the executor is able to determine that certain nodes are
not required; currently, the only node types to support this are the
<literal>Append</literal> and <literal>MergeAppend</literal> nodes. These
node types have the ability to discard subnodes which they are able to
determine won't contain any records required by the query. It is possible
to determine that nodes have been removed in this way by the presence of a
"Subplans Removed" property in the <command>EXPLAIN</command> output.
Normally, <command>EXPLAIN</command> will display every plan node
created by the planner. However, there are cases where the executor
can determine that certain nodes need not be executed because they
cannot produce any rows, based on parameter values that were not
available at planning time. (Currently this can only happen for child
nodes of an Append or MergeAppend node that is scanning a partitioned
table.) When this happens, those plan nodes are omitted from
the <command>EXPLAIN</command> output and a <literal>Subplans
Removed: <replaceable>N</replaceable></literal> annotation appears
instead.
</para>
</sect2>