Andres Freund <and...@anarazel.de> writes: > On 2017-03-21 07:22:57 +0100, Fabien COELHO wrote: >> I've been annoyed by these stupid functions and forgetting to update them >> since I run into them while trying to fix an issue in pg_stat_statement some >> time ago. >> >> I've started to develop a perl script to generate most of them from headers. >> It is not done yet, but it looks that it can work in the end with limited >> effort. Currently it works for copy & equal.
> It'd have to do out/read as well imo. Yeah. A partial solution is pretty much useless. Even with out/read support as well, I'm not sure it's not useless, because you'd still have to remember to consider places like expression_tree_walker and expression_tree_mutator. Those are not really amenable to automatic generation AFAICS, because they have to understand the actual semantics of each field. It's conceivable that you could get somewhere if the starting point were some marked-up representation of every node type's field list, rather than just a C declaration. (IOW, include/nodes/*.h would become generated files as well.) But really, isn't that just moving the error locale from "forgetting to update equalfuncs.c" to "forgetting to include the correct marker keywords"? And people would have to learn about this generator tool and its input language. In the end there's very little substitute for checking every reference to a struct type when you add/modify one of its fields. grep is your friend. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers