From: | Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Avoid circular header file dependency |
Date: | 2025-04-26 08:11:50 |
Message-ID: | aAyVRuECq1JdiAlf@ip-10-97-1-34.eu-west-3.compute.internal |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On Sat, Apr 26, 2025 at 01:20:56AM -0400, Tom Lane wrote:
> Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)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.
>
> 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.
Thanks for sharing your thoughts! yeah, I'm not 100% sure that the proposed
refactoring is the best way but it looks simple enough and allows
wait_event_types.h to include "only" what it really needs.
> > 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 had a look at it, what do you think about 0002 attached? (Not 100% sure
that's the best approach though).
> I am very glad to hear that there's a readily available tool to
> catch such cases.
+1, and it's good to see that there are only 2 cases in the code base.
> We ought to run it every so often.
Yeah, also probably with readability-inconsistent-declaration-parameter-name that
Peter used in [1].
How/where do we "automate" this kind of regular tasks? (I tried to find the answer
in [2] but that thread is pretty long).
[1]: https://www.postgresql.org/message-id/CAH2-WznJt9CMM9KJTMjJh_zbL5hD9oX44qdJ4aqZtjFi-zA3Tg%40mail.gmail.com
[2]: https://www.postgresql.org/message-id/flat/20200812223409.6di3y2qsnvynao7a%40alap3.anarazel.de
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
Attachment | Content-Type | Size |
---|---|---|
v1-0001-Avoid-including-wait_event.h-in-wait_event_types..patch | text/x-diff | 3.1 KB |
v1-0002-Avoid-including-plpython.h-in-plpy_util.h.patch | text/x-diff | 3.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Bertrand Drouvot | 2025-04-26 08:31:32 | Re: Avoid circular header file dependency |
Previous Message | Michael Paquier | 2025-04-26 07:42:56 | Re: Avoid circular header file dependency |