From 731ab0a284f43048f66516d5b3b642819035ba1a 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 779a58b76c1..992486eabea 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 type to support this is the - Append node. This node type has the ability to discard - subnodes which it is 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 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.