From ba62bb63b399dcd6e80817b1c73ead9d87ecc311 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 8 Dec 2019 10:36:29 -0500 Subject: [PATCH] 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 --- doc/src/sgml/perform.sgml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml index 715aff63c8..0f61b0995d 100644 --- a/doc/src/sgml/perform.sgml +++ b/doc/src/sgml/perform.sgml @@ -896,15 +896,16 @@ EXPLAIN ANALYZE SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2 > 9000 - Generally, the EXPLAIN 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 - Append and MergeAppend 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 EXPLAIN output. + Normally, EXPLAIN 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 EXPLAIN output and a Subplans + Removed: N annotation appears + instead.