On 28.12.22 16:07, Tom Lane wrote:
> Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
>> ... Then we could either
>
>> 1) Include varatt.h in postgres.h, similar to elog.h and palloc.h. That
>> way we clean up the files a bit but don't change any external interfaces.
>
>> 2) Just let everyone who needs it include the new file.
>
>> 3) Compromise: You can avoid most "damage" by having fmgr.h include
>> varatt.h. That satisfies most data types and extension code. That way,
>> there are only a few places that need an explicit include of varatt.h.
>
>> I went with the last option in my patch.
>
> I dunno, #3 seems kind of unprincipled. Also, since fmgr.h is included
> so widely, I doubt it is buying very much in terms of reducing header
> footprint. How bad is it to do #2?
See this incremental patch set.
It seems like maybe there is some intermediate abstraction that a lot of
these places should be using that we haven't thought of yet.