summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorDavid Rowley2024-10-29 10:28:12 +0000
committerDavid Rowley2024-10-29 10:28:12 +0000
commit84b8fccbe5c21cc2a05f8cf91903cadc6ebfe680 (patch)
treeb5b1f7b11d547a5826024ca1817c94943e8952a2 /doc/src
parent014720c6d9fb1285846f0b7cc1c80bdbe887a743 (diff)
Doc: add detail about EXPLAIN's "Disabled" property
c01743aa4 and later 161320b4b adjusted the EXPLAIN output to show which plan nodes were chosen despite being disabled by the various enable* GUCs. Prior to e22253467, the disabledness of a node was only evident by a large startup cost penalty. Since we now explicitly tag disabled nodes with a boolean property in EXPLAIN, let's add some documentation to provide some details about why and when disabled nodes can appear in the plan. Author: Laurenz Albe, David Rowley Discussion: https://postgr.es/m/[email protected]
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/perform.sgml25
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml
index ff689b65245..cd12b9ce48b 100644
--- a/doc/src/sgml/perform.sgml
+++ b/doc/src/sgml/perform.sgml
@@ -579,6 +579,31 @@ WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2;
</para>
<para>
+ When using the enable/disable flags to disable plan node types, many of
+ the flags only discourage the use of the corresponding plan node and don't
+ outright disallow the planner's ability to use the plan node type. This
+ is by design so that the planner still maintains the ability to form a
+ plan for a given query. When the resulting plan contains a disabled node,
+ the <command>EXPLAIN</command> output will indicate this fact.
+
+<screen>
+SET enable_seqscan = off;
+EXPLAIN SELECT * FROM unit;
+
+ QUERY PLAN
+---------------------------------------------------------
+ Seq Scan on unit (cost=0.00..21.30 rows=1130 width=44)
+ Disabled: true
+</screen>
+ </para>
+
+ <para>
+ Because the <literal>unit</literal> table has no indexes, there is no
+ other means to read the table data, so the sequential scan is the only
+ option available to the query planner.
+ </para>
+
+ <para>
<indexterm>
<primary>subplan</primary>
</indexterm>