aboutsummaryrefslogtreecommitdiff
path: root/src/include/nodes
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2022-07-09 15:10:15 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2022-07-09 15:10:15 -0400
commit3cd0ac987819280eb8dd3e0997f0294b8bc6355a (patch)
treeadcb32ec90bca7d80e16bbd4e2cbf2d4242d4a85 /src/include/nodes
parent8c73c11a0d39049de2c1f400d8765a0eb21f5228 (diff)
downloadpostgresql-3cd0ac987819280eb8dd3e0997f0294b8bc6355a.tar.gz
postgresql-3cd0ac987819280eb8dd3e0997f0294b8bc6355a.zip
Doc: rearrange high-level commentary about node support coverage.
copyfuncs.c and friends no longer seem like great places to put high-level remarks about what's covered and what isn't. Move that material to backend/nodes/README and other more-prominent places. Add back (versions of) some remarks that disappeared in 2be87f092. Discussion: https://postgr.es/m/3843645.1657385930@sss.pgh.pa.us
Diffstat (limited to 'src/include/nodes')
-rw-r--r--src/include/nodes/execnodes.h21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 967604b8a50..01b1727fc09 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -3,11 +3,20 @@
* execnodes.h
* definitions for executor state nodes
*
- * ExprState represents the evaluation state for a whole expression tree.
- * Most Expr-based plan nodes do not have a corresponding expression state
- * node, they're fully handled within execExpr* - but sometimes the state
- * needs to be shared with other parts of the executor, as for example
- * with SubPlanState, which nodeSubplan.c has to modify.
+ * Most plan node types declared in plannodes.h have a corresponding
+ * execution-state node type declared here. An exception is that
+ * expression nodes (subtypes of Expr) are usually represented by steps
+ * of an ExprState, and fully handled within execExpr* - but sometimes
+ * their state needs to be shared with other parts of the executor, as
+ * for example with SubPlanState, which nodeSubplan.c has to modify.
+ *
+ * Node types declared in this file do not have any copy/equal/out/read
+ * support. (That is currently hard-wired in gen_node_support.pl, rather
+ * than being explicitly represented by pg_node_attr decorations here.)
+ * There is no need for copy, equal, or read support for executor trees.
+ * Output support could be useful for debugging; but there are a lot of
+ * specialized fields that would require custom code, so for now it's
+ * not provided.
*
*
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
@@ -53,7 +62,7 @@ struct LogicalTapeSet;
/* ----------------
* ExprState node
*
- * ExprState is the top-level node for expression evaluation.
+ * ExprState represents the evaluation state for a whole expression tree.
* It contains instructions (in ->steps) to evaluate the expression.
* ----------------
*/