Обсуждение: seemingly useless #include recently added

Поиск
Список
Период
Сортировка

seemingly useless #include recently added

От
Kyotaro Horiguchi
Дата:
Hello.

While working on a patch, I noticed that a rcent commit (d4e71df6d75)
added an apparently unnecessary inclusion of guc.h in smgr.h.

The only change made by the commit to the file is the added #include
directive, which doesn't seem to be functioning, and the build
actually suceeds without it.  Moreover, it brings in some
server-related stuff when I incluce smgr.h in storage_xlog.h, causing
compilation issues for pg_rewind.

Should we remove it? Please find the attached patch.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center

Вложения

Re: seemingly useless #include recently added

От
Tom Lane
Дата:
Kyotaro Horiguchi <horikyota.ntt@gmail.com> writes:
> While working on a patch, I noticed that a rcent commit (d4e71df6d75)
> added an apparently unnecessary inclusion of guc.h in smgr.h.

Yes, that seems quite awful, and I also wonder why it changed fd.h.
Adding #include's to header files is generally not the first choice.

            regards, tom lane



Re: seemingly useless #include recently added

От
Thomas Munro
Дата:
On Tue, Apr 25, 2023 at 3:12 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Kyotaro Horiguchi <horikyota.ntt@gmail.com> writes:
> > While working on a patch, I noticed that a rcent commit (d4e71df6d75)
> > added an apparently unnecessary inclusion of guc.h in smgr.h.
>
> Yes, that seems quite awful, and I also wonder why it changed fd.h.
> Adding #include's to header files is generally not the first choice.

Agreed for smgr.h.  Will push when I'm back at a real computer soon,
or +1 from me if someone else wants to.  It must have been left over
from an earlier version that had a different arrangement with multiple
GUCs in different places and might have needed GUC-related types to
declare the check functions or something like that; sorry.  As for
fd.h, the reason it now includes <fcntl.h> is that fd.h tests whether
O_DIRECT is defined, so in fact that was an omission from 2dbe8905
which moved the #if defined(O_DIRECT) stuff from xlogdefs.h to fd.h
but failed to move the #include with it; I will check if something
needs to be back-patched there.