Re: Avoid circular header file dependency

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-27 08:17:11
Message-ID: aA3oBw/mfVLWXCe+@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 02:55:51PM -0400, Tom Lane wrote:
> Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com> writes:
> > On Sat, Apr 26, 2025 at 01:20:56AM -0400, Tom Lane wrote:
> >> 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).
>
> After looking at this,

Thanks!

> I think the actual problem is that plpython.h
> does this:
>
> /*
> * Used throughout, so it's easier to just include it everywhere.
> */
> #include "plpy_util.h"

Agree.

> which is exactly the sort of cowboy modularity violation that hurts
> when you have to clean it up. Taking that out requires having to
> manually include plpy_util.h in all the relevant .c files, but on
> the other hand we can remove their vestigial direct inclusions of
> plpython.h. It was always pretty silly to #include that after
> including some plpy_foo.h files, so let's stop doing so. The attached
> patch therefore boils down in most places to s/plpython.h/plpy_util.h/.
>
> (A small number of these files still compiled without that, indicating
> that they're not actually using plpy_util.h today. But I figured we
> might as well just do it uniformly.)

Yeah, makes sense. I checked the s/plpython.h/plpy_util.h/ replacements and
the includes alphabetical ordering is still preserved. Also misc-header-include-cycle
is now happy so LGTM.

Regards,

--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2025-04-27 11:02:45 Re: Some problems regarding the self-join elimination code
Previous Message Zhijie Hou (Fujitsu) 2025-04-27 07:03:08 RE: Fix premature xmin advancement during fast forward decoding