pgsql: Rethink the generation rule for fmgroids.h macros.
От | Tom Lane |
---|---|
Тема | pgsql: Rethink the generation rule for fmgroids.h macros. |
Дата | |
Msg-id | E1kZd9E-0004fU-PO@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Rethink the generation rule for fmgroids.h macros. Traditionally, the names of fmgroids.h macros for pg_proc OIDs have been constructed from the prosrc field. But sometimes the same C function underlies multiple pg_proc entries, forcing us to make an arbitrary choice of which OID to reference; the other entries are then not namable via fmgroids.h. Moreover, we could not have macros at all for pg_proc entries that aren't for C-coded functions. Instead, use the proname field, and append the proargtypes field (replacing inter-argument spaces with underscores) if proname is not unique. Special-casing unique entries such as F_OIDEQ removes the need to change a lot of code. Indeed, I can only find two places in the tree that need to be adjusted; while this changes quite a few existing entries in fmgroids.h, few of them are referenced from C code. With this patch, all entries in pg_proc.dat have macros in fmgroids.h. Discussion: https://postgr.es/m/472274.1604258384@sss.pgh.pa.us Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/8e1f37c07aafd4bb7aa6e1e1982010af11f8b5c7 Modified Files -------------- src/backend/optimizer/util/clauses.c | 2 +- src/backend/utils/Gen_fmgrtab.pl | 51 ++++++++++++++++++------------------ src/backend/utils/adt/ruleutils.c | 2 +- 3 files changed, 28 insertions(+), 27 deletions(-)
В списке pgsql-committers по дате отправления: