This field is not used directly in the code, but it is important for
query jumbling to be able to make a difference between a named
DEALLOCATE and DEALLOCATE ALL (see
bb45156f342c). This behavior is
tracked in the regression tests of pg_stat_statements, but the reason
why this field is important can be easily missed, as a recent discussion
has proved, so let's improve its comment to document the reason why it
needs to be around.
Wording has been suggested by Tom Lane
Discussion: https://postgr.es/m/Zih1ATt37YFda8_p@paquier.xyz
NodeTag type;
/* The name of the plan to remove, NULL if DEALLOCATE ALL */
char *name pg_node_attr(query_jumble_ignore);
- /* true if DEALLOCATE ALL */
+
+ /*
+ * True if DEALLOCATE ALL. This is redundant with "name == NULL", but we
+ * make it a separate field so that exactly this condition (and not the
+ * precise name) will be accounted for in query jumbling.
+ */
bool isall;
/* token location, or -1 if unknown */
ParseLoc location pg_node_attr(query_jumble_location);