Re: postgres.h included from relcache.h - but removing it breaks pg_upgrade
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org,
Alexander Korotkov <akorotkov@postgresql.org>
Date: 2021-09-14T02:40:19Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes: > I noticed that postgres.h is included from relcache.h (starting in [1]) and > wanted to fix that - it violates our usual policy against including postgres.h > from within headers. Ugh, yeah, that's entirely against policy. As for the fix ... what in the world is pg_upgrade doing including relcache.h? It seems like there's a more fundamental problem here: either relcache.h is declaring something that needs to be elsewhere, or pg_upgrade is doing something it should not. > I was also wondering if we should put something in c.h and postgres.h to avoid > redundant includes? No. If anything, I'd want to throw an error for "redundant" includes of these files, because it's a pretty good red flag about poorly-thought-out header modularization. regards, tom lane
Commits
-
Split macros from visibilitymap.h into a separate header
- fd22aec631af 13.5 landed
- 7186f07189ba 14.0 landed
- b92f9f74436c 15.0 landed
-
Implement operator class parameters
- 911e70207703 13.0 cited