I wrote:
> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
>> On 2020-Mar-02, Tom Lane wrote:
>>> One thing that I'm not totally happy about, as this stands, is that
>>> we have to #include "catalog/pg_type.h" in various places we did
>>> not need to before (although only a fraction of the files I touched
>>> need that).
>> If we think that pg_type.h is the header to handle access to the pg_type
>> catalog, then I would think that the function declarations at the bottom
>> should be in some "internal" header file; then we can get rid of most
>> the #includes in pg_type.h.
> Well, aside from indirect inclusions, pg_type.h also brings in a bunch
> of type OID macros, which I feel we don't want to broadcast everywhere.
I realized that a possible compromise position is to have tupmacs.h
include pg_type_d.h, not the whole pg_type.h header, thus dodging the
indirect inclusions. That still brings in the type-OID macros, but
it's a lot less header scope creep than I was first fearing.
regards, tom lane