Re: Removing #include "postgres.h" from a couple of headers
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Thomas Munro <thomas.munro@enterprisedb.com>,
Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2017-03-08T14:53:50Z
Lists: pgsql-hackers
... BTW, a bit of grepping shows that there are still significant violations of this policy with respect to header-driven inclusion of postgres_fe.h and c.h. Also, plpgsql is doing it in the unapproved fashion. Cleaning these up will take a bit more work, since we'll have to actually add #includes to some .c files that are currently relying on those headers to get the core header. However, if I believe my own argument, then that's a good thing and we'd better go do it. Also, ecpglib.h seems like a complete mess: it's relying on symbols like ENABLE_NLS but there's no certainty as to whether pg_config.h has been included first. It won't have been in the case where this header is read from an ecpg-generated .c file. So this header will in fact be interpreted differently in ecpg-generated programs than in ecpglib and ecpg itself. Maybe this is okay but it sure smells like trouble waiting to happen. I have no desire to try to fix it myself though. regards, tom lane
Commits
-
Fix inclusions of c.h from .h files.
- a72f0365db41 10.0 landed
-
Fix inclusions of postgres_fe.h from .h files.
- 9722bb5757c5 10.0 landed
-
Bring plpgsql into line with header inclusion policy.
- 08da52859a1f 10.0 landed
-
Document intentional violations of header inclusion policy.
- d6b059ec740a 10.0 landed
-
Remove inclusion of postgres.h from a few header files.
- d9528604ccb0 10.0 landed