postgres.git / summary / log / commit / refs
commit 84b8fccbe5c21cc2a05f8cf91903cadc6ebfe680
Author: David Rowley <drowley@postgresql.org>
Date: Tue Oct 29 10:28:12 2024 +0000
First released in: 18.0
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/883729e429267214753d5e438c82c73a58c3db5d.camel@cybertec.at
doc/src/sgml/perform.sgml | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
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
@@ -578,6 +578,31 @@ WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2;
discussed <link linkend="using-explain-analyze">below</link>.
</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>
[parent: 014720c6d9fb]