Re: split rm_name and rm_desc out of rmgr.c - Mailing list pgsql-hackers

From Tom Lane
Subject Re: split rm_name and rm_desc out of rmgr.c
Date
Msg-id 26774.1360016859@sss.pgh.pa.us
Whole thread Raw
In response to split rm_name and rm_desc out of rmgr.c  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: split rm_name and rm_desc out of rmgr.c  (Andres Freund <andres@2ndquadrant.com>)
Re: split rm_name and rm_desc out of rmgr.c  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Re: split rm_name and rm_desc out of rmgr.c  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> pg_xlogdump needs access to the *_desc functions for each rmgr.  We
> already moved forward quite a bit by splitting those functions out of
> their containing files; so now they are compilable separately.  Good.
> The remaining task is enabling the code to find those functions in the
> first place; currently, the function pointers live in rmgr.c which is
> not compilable by frontend code because it contains pointers to other
> functions.  Hence the attached patch splits RmgrData into two; the names
> and rm_desc functions go into a new file which can be compiled easily by
> frontend.

> Proposed patch attached.

This seems pretty ugly to me.

Couldn't we do something similar to the design for SQL keyword constants,
wherein the actual data is in macros in a header file (providing exactly
one source of truth for each RM) and then various .c files can #include
that after #defining the macro as they need?  See
src/include/parser/kwlist.h and the files that include that.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: autovacuum not prioritising for-wraparound tables
Next
From: Tom Lane
Date:
Subject: Re: issues with range types, btree_gist and constraints