pgsql: Add some error cross-checks to gen_node_support.pl. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Add some error cross-checks to gen_node_support.pl.
Date
Msg-id E1p1CWV-001k6Q-MX@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Add some error cross-checks to gen_node_support.pl.

Check that if we generate a call to copy, compare, write, or read
a specific node type, that node type does have the appropriate
support function.  (This doesn't protect against trying to invoke
nonexistent code when considering generic field types such as
"Node *", but it seems like a useful check anyway.)

Check that array_size() refers to a field appearing earlier in
the struct.  Aside from catching obvious errors like a misspelled
field name, this protects against a more subtle mistake: if the
size field appears later in the struct than the array field, then
compare and read functions would misbehave.  There is actually
exactly that situation in PlannerInfo, but it's okay since we
do not need compare or read functionality for that (today anyway).

Discussion: https://postgr.es/m/263413.1669513145@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b6bd5def3a6382995634d33f46d20e191a475914

Modified Files
--------------
src/backend/nodes/gen_node_support.pl | 62 +++++++++++++++++++++++++++--------
1 file changed, 49 insertions(+), 13 deletions(-)


pgsql-committers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: pgsql: Doc: document bpchar, clarify relationship of text and varchar.
Next
From: Tom Lane
Date:
Subject: Re: pgsql: Doc: document bpchar, clarify relationship of text and varchar.