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

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Add some error cross-checks to gen_node_support.pl.
Date: 2022-12-02 20:20:40
Message-ID: E1p1CWV-001k6Q-MX@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2022-12-02 20:26:46 Re: pgsql: Doc: document bpchar, clarify relationship of text and varchar.
Previous Message Jeff Davis 2022-12-02 20:18:22 Re: pgsql: Doc: document bpchar, clarify relationship of text and varchar.