Robert Haas <robertmh...@gmail.com> writes: > The thing that was bugging me a bit is that explain_format.h includes > explain.h.
Yeah, I did not like that at all either -- it makes things a bit circular, and I fear IWYU is going to make stupid recommendations like not including explain.h in explain.c. Did you look at avoiding that with our standard trick of writing detail-free struct declarations? That is, explain_format.h would need struct ExplainState; /* avoid including explain.h here */ and then s/ExplainState/struct ExplainState/ in all the function declarations. You'd still need to get List from someplace, but it could be gotten by including primnodes.h or even pg_list.h. regards, tom lane