postgresql/src/tools
Tom Lane f62975b2af Tighten header pre-inclusions in headerscheck and cpluspluscheck.
We allow our header files to depend on the appropriate one of
postgres.h, postgres_fe.h, or c.h having already been included.
However, there are a few headers such as libpq-fe.h that are
meant to be used by client applications and therefore must
compile without any assumptions about previous inclusions.
These test scripts failed to consider that, which seems quite
hazardous since we might not immediately notice such a problem
otherwise.  Hence, adjust these scripts to test relevant libpq
and ecpg headers with no prior inclusion.

While at it, we can also make an effort to actually use the
relevant one of postgres.h, postgres_fe.h, or c.h.  I added
some rules that guess which one to use based on the first-level
src subdirectory, e.g. use postgres_fe.h under src/bin/.
These rules are hardly water-tight but they seem to work today,
and we can always refine them in the future.

These changes don't reveal any live problems today, which is good,
but they should make these scripts more able to catch future bugs.

Discussion: https://postgr.es/m/2488193.1677863247@sss.pgh.pa.us
2023-03-04 12:11:50 -05:00
..
ci ci: Add task testing windows with mingw 2022-11-17 16:22:25 -08:00
editors Make Emacs perl-mode indent more like perltidy. 2019-01-13 11:32:31 -08:00
ifaddrs Update copyright for 2023 2023-01-02 15:00:37 -05:00
msvc Don't force SQL_ASCII/no-locale for installcheck in vcregress.pl 2023-02-26 06:48:41 -05:00
perlcheck doc: update metacpan.org links to avoid redirects 2022-11-16 10:24:37 +01:00
pg_bsd_indent Make pg_bsd_indent's .h files inclusion-order-safe. 2023-02-12 13:06:37 -05:00
pginclude Tighten header pre-inclusions in headerscheck and cpluspluscheck. 2023-03-04 12:11:50 -05:00
pgindent Add LZ4 compression to pg_dump 2023-02-23 21:19:26 +01:00
ccsym tools/ccsym: update for modern versions of gcc 2015-01-20 13:02:58 -05:00
check_bison_recursion.pl Update copyright for 2023 2023-01-02 15:00:37 -05:00
codelines Fix remaining stray references to CVS. 2010-09-22 19:51:39 -04:00
copyright.pl Update copyright for 2023 2023-01-02 15:00:37 -05:00
darwin_sysroot Move darwin sysroot determination into separate file 2022-09-01 16:54:19 -07:00
find_badmacros Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
find_meson meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
find_static Fix trap in a few shell scripts 2022-09-20 18:50:16 +02:00
find_typedef Refer to OS X as "macOS", except for the port name which is still "darwin". 2016-09-25 15:40:57 -04:00
fix-old-flex-code.pl Update copyright for 2023 2023-01-02 15:00:37 -05:00
gen_export.pl meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
gen_keywordlist.pl Update copyright for 2023 2023-01-02 15:00:37 -05:00
git-external-diff Preserve information on use of git-external-diff 2018-05-24 23:45:31 +09:30
git_changelog Update copyright for 2023 2023-01-02 15:00:37 -05:00
install_test_files meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
make_ctags Fix make_etags failure on Mac. 2023-02-15 09:52:42 +09:00
make_etags Fix make_etags failure on Mac. 2023-02-15 09:52:42 +09:00
make_mkid Add another pgdefine path check, and a cvs-git change. 2011-08-26 21:52:35 -04:00
mark_pgdllimport.pl Update copyright for 2023 2023-01-02 15:00:37 -05:00
PerfectHash.pm Update copyright for 2023 2023-01-02 15:00:37 -05:00
pgflex meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pgtest Fix trap in a few shell scripts 2022-09-20 18:50:16 +02:00
rcgen meson: Add windows resource files 2022-10-05 09:56:05 -07:00
RELEASE_CHANGES Add defenses against unexpected changes in the NodeTag enum list. 2022-07-12 11:22:52 -04:00
testint128.c Update copyright for 2023 2023-01-02 15:00:37 -05:00
testwrap meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
valgrind.supp Record dependencies of a cast on other casts that it requires. 2022-10-17 14:02:05 -04:00
version_stamp.pl Update copyright for 2023 2023-01-02 15:00:37 -05:00
win32tzlist.pl Update copyright for 2023 2023-01-02 15:00:37 -05:00