Hmm, patch 0008 removes data lines from the .h but leaves the dependent OID define lines around:
#define BTREE_AM_OID 403 This is not good, because then the define depends on data that appears in a distant file. Another consideration is that the current system has the property that these OIDs are discoverable by a hacker by navigating to the containing .h file; and a missing symbol is easily fixable if they need to hardcode the OID for which there isn't a symbol yet. Maybe a generated .h file containing defines for OIDs from all catalogs is okay. Of course, not all symbols are to be listed -- we should have a special marker in the data lines for those that are. Maybe something like this { oid => '403', descr => 'b-tree index access method', amname => 'btree', amhandler => 'bthandler', amtype => 'i', cpp_symbol => 'BTREE_AM_OID' }, (where 'cpp_symbol' would be skipped by genbki explicitly). Any better ideas? -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services