queries, like <I>INSERT</I> and <I>UPDATE,</I> specify the columns
modified by the query. These column references are converted to <A
HREF="../../include/nodes/primnodes.h">Resdom</A> entries, which are
-linked together to make up the <I>target list</I> of the query. The
-target list is stored in Query.targetList, which is generated by
+placed in <A HREF="../../include/nodes/parsenodes.h">target list
+entries,</I> and linked together to make up the <I>target list</I> of
+the query. The target list is stored in Query.targetList, which is
+generated by
<A HREF="../../backend/parser/parse_target.c">transformTargetList().</A>
<P>
Other query elements, like aggregates(<I>SUM()</I>), <I>GROUP BY,</I>
table join order and join type of each table in the RangeTable, using
Query.qual(<I>WHERE</I> clause) to consider optimal index usage.
<P>
+
The Plan is then passed to the <A
HREF="../../backend/executor">executor</A> for execution, and the result
-returned to the client.
+returned to the client. The Plan actually as set of nodes, arranged in
+a tree structure with a top-level node, and various sub-nodes as
+children.
+
<P>
There are many other modules that support this basic functionality.
They can be accessed by clicking on the flowchart.