Andres Freund <and...@anarazel.de> writes: > +++ b/src/include/storage/barrier.h > +#include "postgres.h"
> Huh, that normally shouldn't be in a header. I see you introduced that > in a bunch of other places too - that really doesn't look right to me. That is absolutely not project style and is not acceptable. The core reason why not is that postgres.h/postgres_fe.h/c.h have to be the *first* inclusion in every compilation, for arcane portability reasons you really don't want to know about. (Suffice it to say that on some platforms, stdio.h isn't all that std.) Our coding rule for that is that we put the appropriate one of these first in every .c file, while .h files always assume that it's been included already. As soon as you break that convention, it becomes unclear from looking at a .c file whether the ordering requirement has been satisfied. Also, since now you've moved the must-be-first requirement to some other header file(s), you risk breakage when somebody applies another project convention about alphabetizing #include references for all headers other than those magic ones. In short, don't even think of doing this. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers