Re: Avoid circular header file dependency
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-04-26T05:20:56Z
Lists: pgsql-hackers
Bertrand Drouvot <bertranddrouvot.pg@gmail.com> writes: > While working on wait events I faced some compilation issues due to circular > header file dependency (introduced in fa88928470b5) between wait_event.h and > wait_event_types.h. Ugh. I still carry the scars of cleaning up after a previous circular-inclusion mess (cf 1609797c2), so I'm always worried about introducing new cases. I don't have an opinion about whether this specific refactoring is the best way to deal with this case, but I definitely feel that we mustn't allow the situation to persist. > Out of curiosity, I ran clang-tidy with misc-header-include-cycle ([1]) and it > also reports: > ../src/pl/plpython/plpy_util.h:9:10: warning: circular header file dependency detected while including 'plpython.h' > This one worries me less because plpy_util.h only contains simple external > function declarations. Whatever it contains, we need to kill it with fire before the problem metastasizes like it did the last time. (yeah, yeah, badly mixed metaphors) I can take a look at this one over the weekend if nobody beats me to it. I am very glad to hear that there's a readily available tool to catch such cases. We ought to run it every so often. regards, tom lane
Commits
-
Remove circular #include's between wait_event.h and wait_event_types.h
- b225c5e76ed1 18.0 landed
-
Remove circular #include's between plpython.h and plpy_util.h.
- 2311f193ea7d 18.0 landed