pgsql: Rethink the generation rule for fmgroids.h macros.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Rethink the generation rule for fmgroids.h macros.
Date: 2020-11-02 16:57:36
Message-ID: E1kZd9E-0004fU-PO@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2020-11-02 19:34:40 pgsql: Remove special checks for pg_rewrite.ev_qual and ev_action being
Previous Message Tom Lane 2020-11-02 16:25:33 pgsql: Second thoughts on TOAST decompression.