summaryrefslogtreecommitdiff
path: root/src/backend/access
diff options
context:
space:
mode:
authorPeter Eisentraut2024-03-04 11:00:11 +0000
committerPeter Eisentraut2024-03-04 11:02:20 +0000
commitdbbca2cf299b81299112ca6ada671a36235ec008 (patch)
treeaac5368f0983f682c6a31b6bc6140cd89b50fe3c /src/backend/access
parent24eebc65c26cfcc0ea5b8a95b61fa2fda6118e68 (diff)
Remove unused #include's from backend .c files
as determined by include-what-you-use (IWYU) While IWYU also suggests to *add* a bunch of #include's (which is its main purpose), this patch does not do that. In some cases, a more specific #include replaces another less specific one. Some manual adjustments of the automatic result: - IWYU currently doesn't know about includes that provide global variable declarations (like -Wmissing-variable-declarations), so those includes are being kept manually. - All includes for port(ability) headers are being kept for now, to play it safe. - No changes of catalog/pg_foo.h to catalog/pg_foo_d.h, to keep the patch from exploding in size. Note that this patch touches just *.c files, so nothing declared in header files changes in hidden ways. As a small example, in src/backend/access/transam/rmgr.c, some IWYU pragma annotations are added to handle a special case there. Discussion: https://www.postgresql.org/message-id/flat/af837490-6b2f-46df-ba05-37ea6a6653fc%40eisentraut.org
Diffstat (limited to 'src/backend/access')
-rw-r--r--src/backend/access/brin/brin.c2
-rw-r--r--src/backend/access/brin/brin_bloom.c9
-rw-r--r--src/backend/access/brin/brin_inclusion.c2
-rw-r--r--src/backend/access/brin/brin_minmax.c4
-rw-r--r--src/backend/access/brin/brin_minmax_multi.c1
-rw-r--r--src/backend/access/brin/brin_pageops.c1
-rw-r--r--src/backend/access/brin/brin_revmap.c1
-rw-r--r--src/backend/access/common/attmap.c1
-rw-r--r--src/backend/access/common/heaptuple.c1
-rw-r--r--src/backend/access/common/printtup.c1
-rw-r--r--src/backend/access/common/relation.c1
-rw-r--r--src/backend/access/common/reloptions.c2
-rw-r--r--src/backend/access/common/toast_compression.c2
-rw-r--r--src/backend/access/common/toast_internals.c1
-rw-r--r--src/backend/access/gin/ginarrayproc.c2
-rw-r--r--src/backend/access/gin/ginentrypage.c1
-rw-r--r--src/backend/access/gin/ginfast.c2
-rw-r--r--src/backend/access/gin/gininsert.c5
-rw-r--r--src/backend/access/gin/ginlogic.c6
-rw-r--r--src/backend/access/gin/ginutil.c3
-rw-r--r--src/backend/access/gin/ginvalidate.c2
-rw-r--r--src/backend/access/gist/gist.c3
-rw-r--r--src/backend/access/gist/gistbuild.c3
-rw-r--r--src/backend/access/gist/gistbuildbuffers.c4
-rw-r--r--src/backend/access/gist/gistget.c1
-rw-r--r--src/backend/access/gist/gistproc.c2
-rw-r--r--src/backend/access/gist/gistutil.c3
-rw-r--r--src/backend/access/gist/gistvalidate.c1
-rw-r--r--src/backend/access/gist/gistxlog.c4
-rw-r--r--src/backend/access/hash/hash.c6
-rw-r--r--src/backend/access/hash/hash_xlog.c5
-rw-r--r--src/backend/access/hash/hashfunc.c4
-rw-r--r--src/backend/access/hash/hashinsert.c2
-rw-r--r--src/backend/access/hash/hashpage.c2
-rw-r--r--src/backend/access/hash/hashutil.c1
-rw-r--r--src/backend/access/heap/heapam.c4
-rw-r--r--src/backend/access/heap/heapam_visibility.c2
-rw-r--r--src/backend/access/heap/hio.c1
-rw-r--r--src/backend/access/heap/pruneheap.c2
-rw-r--r--src/backend/access/heap/rewriteheap.c2
-rw-r--r--src/backend/access/heap/vacuumlazy.c6
-rw-r--r--src/backend/access/heap/visibilitymap.c2
-rw-r--r--src/backend/access/index/amapi.c2
-rw-r--r--src/backend/access/index/genam.c3
-rw-r--r--src/backend/access/index/indexam.c9
-rw-r--r--src/backend/access/nbtree/nbtcompare.c2
-rw-r--r--src/backend/access/nbtree/nbtinsert.c1
-rw-r--r--src/backend/access/nbtree/nbtpage.c1
-rw-r--r--src/backend/access/nbtree/nbtree.c6
-rw-r--r--src/backend/access/nbtree/nbtsort.c1
-rw-r--r--src/backend/access/nbtree/nbtsplitloc.c1
-rw-r--r--src/backend/access/nbtree/nbtutils.c1
-rw-r--r--src/backend/access/nbtree/nbtxlog.c4
-rw-r--r--src/backend/access/rmgrdesc/committsdesc.c1
-rw-r--r--src/backend/access/rmgrdesc/genericdesc.c1
-rw-r--r--src/backend/access/rmgrdesc/gindesc.c2
-rw-r--r--src/backend/access/rmgrdesc/gistdesc.c1
-rw-r--r--src/backend/access/spgist/spginsert.c4
-rw-r--r--src/backend/access/spgist/spgkdtreeproc.c2
-rw-r--r--src/backend/access/spgist/spgproc.c2
-rw-r--r--src/backend/access/spgist/spgquadtreeproc.c2
-rw-r--r--src/backend/access/spgist/spgtextproc.c2
-rw-r--r--src/backend/access/spgist/spgutils.c4
-rw-r--r--src/backend/access/spgist/spgvacuum.c1
-rw-r--r--src/backend/access/spgist/spgvalidate.c2
-rw-r--r--src/backend/access/spgist/spgxlog.c2
-rw-r--r--src/backend/access/table/table.c2
-rw-r--r--src/backend/access/table/tableamapi.c7
-rw-r--r--src/backend/access/table/toast_helper.c1
-rw-r--r--src/backend/access/tablesample/bernoulli.c2
-rw-r--r--src/backend/access/tablesample/system.c3
-rw-r--r--src/backend/access/transam/commit_ts.c5
-rw-r--r--src/backend/access/transam/generic_xlog.c1
-rw-r--r--src/backend/access/transam/multixact.c6
-rw-r--r--src/backend/access/transam/parallel.c3
-rw-r--r--src/backend/access/transam/rmgr.c19
-rw-r--r--src/backend/access/transam/twophase.c3
-rw-r--r--src/backend/access/transam/xact.c2
-rw-r--r--src/backend/access/transam/xlog.c5
-rw-r--r--src/backend/access/transam/xlogarchive.c1
-rw-r--r--src/backend/access/transam/xlogfuncs.c6
-rw-r--r--src/backend/access/transam/xloginsert.c1
-rw-r--r--src/backend/access/transam/xlogprefetcher.c4
-rw-r--r--src/backend/access/transam/xlogreader.c2
-rw-r--r--src/backend/access/transam/xlogrecovery.c3
-rw-r--r--src/backend/access/transam/xlogutils.c3
86 files changed, 58 insertions, 188 deletions
diff --git a/src/backend/access/brin/brin.c b/src/backend/access/brin/brin.c
index 1087a9011ea..0574d81d414 100644
--- a/src/backend/access/brin/brin.c
+++ b/src/backend/access/brin/brin.c
@@ -35,8 +35,8 @@
#include "storage/freespace.h"
#include "tcop/tcopprot.h" /* pgrminclude ignore */
#include "utils/acl.h"
-#include "utils/builtins.h"
#include "utils/datum.h"
+#include "utils/fmgrprotos.h"
#include "utils/guc.h"
#include "utils/index_selfuncs.h"
#include "utils/memutils.h"
diff --git a/src/backend/access/brin/brin_bloom.c b/src/backend/access/brin/brin_bloom.c
index 13c1e681f34..32de039161e 100644
--- a/src/backend/access/brin/brin_bloom.c
+++ b/src/backend/access/brin/brin_bloom.c
@@ -119,17 +119,14 @@
#include "access/brin_internal.h"
#include "access/brin_page.h"
#include "access/brin_tuple.h"
-#include "access/hash.h"
#include "access/htup_details.h"
#include "access/reloptions.h"
-#include "access/stratnum.h"
+#include "catalog/pg_am.h"
#include "catalog/pg_type.h"
#include "catalog/pg_amop.h"
-#include "utils/builtins.h"
-#include "utils/datum.h"
-#include "utils/lsyscache.h"
+#include "common/hashfn.h"
+#include "utils/fmgrprotos.h"
#include "utils/rel.h"
-#include "utils/syscache.h"
#include <math.h>
diff --git a/src/backend/access/brin/brin_inclusion.c b/src/backend/access/brin/brin_inclusion.c
index e032efe86ee..750276998c5 100644
--- a/src/backend/access/brin/brin_inclusion.c
+++ b/src/backend/access/brin/brin_inclusion.c
@@ -30,8 +30,8 @@
#include "access/skey.h"
#include "catalog/pg_amop.h"
#include "catalog/pg_type.h"
-#include "utils/builtins.h"
#include "utils/datum.h"
+#include "utils/fmgrprotos.h"
#include "utils/lsyscache.h"
#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/access/brin/brin_minmax.c b/src/backend/access/brin/brin_minmax.c
index 6b3dd21e42b..caf6991eb1b 100644
--- a/src/backend/access/brin/brin_minmax.c
+++ b/src/backend/access/brin/brin_minmax.c
@@ -12,12 +12,10 @@
#include "access/brin_internal.h"
#include "access/brin_tuple.h"
-#include "access/genam.h"
#include "access/stratnum.h"
#include "catalog/pg_amop.h"
-#include "catalog/pg_type.h"
-#include "utils/builtins.h"
#include "utils/datum.h"
+#include "utils/fmgrprotos.h"
#include "utils/lsyscache.h"
#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/access/brin/brin_minmax_multi.c b/src/backend/access/brin/brin_minmax_multi.c
index 2c29aa3d4ef..207a5a15b3d 100644
--- a/src/backend/access/brin/brin_minmax_multi.c
+++ b/src/backend/access/brin/brin_minmax_multi.c
@@ -77,7 +77,6 @@
#include "utils/inet.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
-#include "utils/numeric.h"
#include "utils/pg_lsn.h"
#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/access/brin/brin_pageops.c b/src/backend/access/brin/brin_pageops.c
index f54fb011974..b69217c1ec6 100644
--- a/src/backend/access/brin/brin_pageops.c
+++ b/src/backend/access/brin/brin_pageops.c
@@ -19,7 +19,6 @@
#include "storage/bufmgr.h"
#include "storage/freespace.h"
#include "storage/lmgr.h"
-#include "storage/smgr.h"
#include "utils/rel.h"
/*
diff --git a/src/backend/access/brin/brin_revmap.c b/src/backend/access/brin/brin_revmap.c
index 69b8807fc0f..5a9ed40ab64 100644
--- a/src/backend/access/brin/brin_revmap.c
+++ b/src/backend/access/brin/brin_revmap.c
@@ -29,7 +29,6 @@
#include "access/xloginsert.h"
#include "miscadmin.h"
#include "storage/bufmgr.h"
-#include "storage/lmgr.h"
#include "utils/rel.h"
diff --git a/src/backend/access/common/attmap.c b/src/backend/access/common/attmap.c
index 10ba06426d8..b0fe27ef57d 100644
--- a/src/backend/access/common/attmap.c
+++ b/src/backend/access/common/attmap.c
@@ -23,7 +23,6 @@
#include "postgres.h"
#include "access/attmap.h"
-#include "access/htup_details.h"
#include "utils/builtins.h"
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index 38e544f6dfa..5c89fbbef83 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -61,7 +61,6 @@
#include "access/sysattr.h"
#include "access/tupdesc_details.h"
#include "common/hashfn.h"
-#include "executor/tuptable.h"
#include "utils/datum.h"
#include "utils/expandeddatum.h"
#include "utils/hsearch.h"
diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c
index ba0f8f5407a..37c5aa2b955 100644
--- a/src/backend/access/common/printtup.c
+++ b/src/backend/access/common/printtup.c
@@ -16,7 +16,6 @@
#include "postgres.h"
#include "access/printtup.h"
-#include "libpq/libpq.h"
#include "libpq/pqformat.h"
#include "tcop/pquery.h"
#include "utils/lsyscache.h"
diff --git a/src/backend/access/common/relation.c b/src/backend/access/common/relation.c
index 597a278cd9e..d8a313a2c90 100644
--- a/src/backend/access/common/relation.c
+++ b/src/backend/access/common/relation.c
@@ -23,7 +23,6 @@
#include "access/relation.h"
#include "access/xact.h"
#include "catalog/namespace.h"
-#include "miscadmin.h"
#include "pgstat.h"
#include "storage/lmgr.h"
#include "utils/inval.h"
diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index 0921a736ab2..d6eb5d85599 100644
--- a/src/backend/access/common/reloptions.c
+++ b/src/backend/access/common/reloptions.c
@@ -27,9 +27,7 @@
#include "catalog/pg_type.h"
#include "commands/defrem.h"
#include "commands/tablespace.h"
-#include "commands/view.h"
#include "nodes/makefuncs.h"
-#include "postmaster/postmaster.h"
#include "utils/array.h"
#include "utils/attoptcache.h"
#include "utils/builtins.h"
diff --git a/src/backend/access/common/toast_compression.c b/src/backend/access/common/toast_compression.c
index 09d05d97c58..52230f31c68 100644
--- a/src/backend/access/common/toast_compression.c
+++ b/src/backend/access/common/toast_compression.c
@@ -20,8 +20,6 @@
#include "access/detoast.h"
#include "access/toast_compression.h"
#include "common/pg_lzcompress.h"
-#include "fmgr.h"
-#include "utils/builtins.h"
#include "varatt.h"
/* GUC */
diff --git a/src/backend/access/common/toast_internals.c b/src/backend/access/common/toast_internals.c
index a0522fcf5c7..90d0654e629 100644
--- a/src/backend/access/common/toast_internals.c
+++ b/src/backend/access/common/toast_internals.c
@@ -21,7 +21,6 @@
#include "access/toast_internals.h"
#include "access/xact.h"
#include "catalog/catalog.h"
-#include "common/pg_lzcompress.h"
#include "miscadmin.h"
#include "utils/fmgroids.h"
#include "utils/rel.h"
diff --git a/src/backend/access/gin/ginarrayproc.c b/src/backend/access/gin/ginarrayproc.c
index 134f55f9f21..2373e76f77e 100644
--- a/src/backend/access/gin/ginarrayproc.c
+++ b/src/backend/access/gin/ginarrayproc.c
@@ -16,7 +16,7 @@
#include "access/gin.h"
#include "access/stratnum.h"
#include "utils/array.h"
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
#include "utils/lsyscache.h"
diff --git a/src/backend/access/gin/ginentrypage.c b/src/backend/access/gin/ginentrypage.c
index 63dd9a3722a..94ef951e14f 100644
--- a/src/backend/access/gin/ginentrypage.c
+++ b/src/backend/access/gin/ginentrypage.c
@@ -17,7 +17,6 @@
#include "access/gin_private.h"
#include "access/ginxlog.h"
#include "access/xloginsert.h"
-#include "miscadmin.h"
#include "utils/rel.h"
static void entrySplitPage(GinBtree btree, Buffer origbuf,
diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c
index e118cecb9a4..eeca3ed318f 100644
--- a/src/backend/access/gin/ginfast.c
+++ b/src/backend/access/gin/ginfast.c
@@ -31,7 +31,7 @@
#include "storage/lmgr.h"
#include "storage/predicate.h"
#include "utils/acl.h"
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
#include "utils/memutils.h"
#include "utils/rel.h"
diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c
index 45cc8c133f2..71f38be90c3 100644
--- a/src/backend/access/gin/gininsert.c
+++ b/src/backend/access/gin/gininsert.c
@@ -15,15 +15,12 @@
#include "postgres.h"
#include "access/gin_private.h"
-#include "access/ginxlog.h"
#include "access/tableam.h"
#include "access/xloginsert.h"
-#include "catalog/index.h"
#include "miscadmin.h"
+#include "nodes/execnodes.h"
#include "storage/bufmgr.h"
-#include "storage/indexfsm.h"
#include "storage/predicate.h"
-#include "storage/smgr.h"
#include "utils/memutils.h"
#include "utils/rel.h"
diff --git a/src/backend/access/gin/ginlogic.c b/src/backend/access/gin/ginlogic.c
index b18ddd11c2d..28caf91f857 100644
--- a/src/backend/access/gin/ginlogic.c
+++ b/src/backend/access/gin/ginlogic.c
@@ -35,12 +35,6 @@
#include "postgres.h"
#include "access/gin_private.h"
-#include "access/reloptions.h"
-#include "catalog/pg_collation.h"
-#include "catalog/pg_type.h"
-#include "miscadmin.h"
-#include "storage/indexfsm.h"
-#include "storage/lmgr.h"
/*
diff --git a/src/backend/access/gin/ginutil.c b/src/backend/access/gin/ginutil.c
index 6d05e7bdcda..5747ae6a4ca 100644
--- a/src/backend/access/gin/ginutil.c
+++ b/src/backend/access/gin/ginutil.c
@@ -23,10 +23,9 @@
#include "commands/vacuum.h"
#include "miscadmin.h"
#include "storage/indexfsm.h"
-#include "storage/lmgr.h"
-#include "storage/predicate.h"
#include "utils/builtins.h"
#include "utils/index_selfuncs.h"
+#include "utils/rel.h"
#include "utils/typcache.h"
diff --git a/src/backend/access/gin/ginvalidate.c b/src/backend/access/gin/ginvalidate.c
index 13cf390bb3d..74420a129aa 100644
--- a/src/backend/access/gin/ginvalidate.c
+++ b/src/backend/access/gin/ginvalidate.c
@@ -21,8 +21,6 @@
#include "catalog/pg_opclass.h"
#include "catalog/pg_opfamily.h"
#include "catalog/pg_type.h"
-#include "utils/builtins.h"
-#include "utils/lsyscache.h"
#include "utils/regproc.h"
#include "utils/syscache.h"
diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c
index 943ae91019f..ed4ffa63a77 100644
--- a/src/backend/access/gist/gist.c
+++ b/src/backend/access/gist/gist.c
@@ -21,9 +21,8 @@
#include "commands/vacuum.h"
#include "miscadmin.h"
#include "nodes/execnodes.h"
-#include "storage/lmgr.h"
#include "storage/predicate.h"
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
#include "utils/index_selfuncs.h"
#include "utils/memutils.h"
#include "utils/rel.h"
diff --git a/src/backend/access/gist/gistbuild.c b/src/backend/access/gist/gistbuild.c
index 465246173ba..ba06df30faf 100644
--- a/src/backend/access/gist/gistbuild.c
+++ b/src/backend/access/gist/gistbuild.c
@@ -36,11 +36,10 @@
#include "access/genam.h"
#include "access/gist_private.h"
-#include "access/gistxlog.h"
#include "access/tableam.h"
#include "access/xloginsert.h"
-#include "catalog/index.h"
#include "miscadmin.h"
+#include "nodes/execnodes.h"
#include "optimizer/optimizer.h"
#include "storage/bufmgr.h"
#include "storage/bulk_write.h"
diff --git a/src/backend/access/gist/gistbuildbuffers.c b/src/backend/access/gist/gistbuildbuffers.c
index a6f39c1b488..4c2301da005 100644
--- a/src/backend/access/gist/gistbuildbuffers.c
+++ b/src/backend/access/gist/gistbuildbuffers.c
@@ -14,13 +14,9 @@
*/
#include "postgres.h"
-#include "access/genam.h"
#include "access/gist_private.h"
-#include "catalog/index.h"
-#include "miscadmin.h"
#include "storage/buffile.h"
#include "storage/bufmgr.h"
-#include "utils/memutils.h"
#include "utils/rel.h"
static GISTNodeBufferPage *gistAllocateNewPageBuffer(GISTBuildBuffers *gfbb);
diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c
index d5c8ae8166c..b35b8a97577 100644
--- a/src/backend/access/gist/gistget.c
+++ b/src/backend/access/gist/gistget.c
@@ -20,7 +20,6 @@
#include "lib/pairingheap.h"
#include "miscadmin.h"
#include "pgstat.h"
-#include "storage/lmgr.h"
#include "storage/predicate.h"
#include "utils/float.h"
#include "utils/memutils.h"
diff --git a/src/backend/access/gist/gistproc.c b/src/backend/access/gist/gistproc.c
index da61f758bfb..781c2f73588 100644
--- a/src/backend/access/gist/gistproc.c
+++ b/src/backend/access/gist/gistproc.c
@@ -21,8 +21,8 @@
#include "access/gist.h"
#include "access/stratnum.h"
-#include "utils/builtins.h"
#include "utils/float.h"
+#include "utils/fmgrprotos.h"
#include "utils/geo_decls.h"
#include "utils/sortsupport.h"
diff --git a/src/backend/access/gist/gistutil.c b/src/backend/access/gist/gistutil.c
index 00570445133..d2d0b36d4ea 100644
--- a/src/backend/access/gist/gistutil.c
+++ b/src/backend/access/gist/gistutil.c
@@ -18,13 +18,12 @@
#include "access/gist_private.h"
#include "access/htup_details.h"
#include "access/reloptions.h"
-#include "catalog/pg_opclass.h"
#include "common/pg_prng.h"
#include "storage/indexfsm.h"
-#include "storage/lmgr.h"
#include "utils/float.h"
#include "utils/fmgrprotos.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/syscache.h"
diff --git a/src/backend/access/gist/gistvalidate.c b/src/backend/access/gist/gistvalidate.c
index 698e01ed2f7..0901543a60a 100644
--- a/src/backend/access/gist/gistvalidate.c
+++ b/src/backend/access/gist/gistvalidate.c
@@ -21,7 +21,6 @@
#include "catalog/pg_opclass.h"
#include "catalog/pg_opfamily.h"
#include "catalog/pg_type.h"
-#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/regproc.h"
#include "utils/syscache.h"
diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c
index 82b66bd0ee4..fafd9f1c94f 100644
--- a/src/backend/access/gist/gistxlog.c
+++ b/src/backend/access/gist/gistxlog.c
@@ -16,12 +16,10 @@
#include "access/bufmask.h"
#include "access/gist_private.h"
#include "access/gistxlog.h"
-#include "access/heapam_xlog.h"
#include "access/transam.h"
#include "access/xloginsert.h"
#include "access/xlogutils.h"
-#include "miscadmin.h"
-#include "storage/procarray.h"
+#include "storage/standby.h"
#include "utils/memutils.h"
#include "utils/rel.h"
diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c
index fa5b59a150a..75bb02dfd73 100644
--- a/src/backend/access/hash/hash.c
+++ b/src/backend/access/hash/hash.c
@@ -23,13 +23,13 @@
#include "access/relscan.h"
#include "access/tableam.h"
#include "access/xloginsert.h"
-#include "catalog/index.h"
#include "commands/progress.h"
#include "commands/vacuum.h"
#include "miscadmin.h"
-#include "optimizer/plancat.h"
+#include "nodes/execnodes.h"
#include "pgstat.h"
-#include "utils/builtins.h"
+#include "optimizer/plancat.h"
+#include "utils/fmgrprotos.h"
#include "utils/index_selfuncs.h"
#include "utils/rel.h"
diff --git a/src/backend/access/hash/hash_xlog.c b/src/backend/access/hash/hash_xlog.c
index f6957dab7d8..4e05a1b4632 100644
--- a/src/backend/access/hash/hash_xlog.c
+++ b/src/backend/access/hash/hash_xlog.c
@@ -17,11 +17,8 @@
#include "access/bufmask.h"
#include "access/hash.h"
#include "access/hash_xlog.h"
-#include "access/transam.h"
-#include "access/xlog.h"
#include "access/xlogutils.h"
-#include "miscadmin.h"
-#include "storage/procarray.h"
+#include "storage/standby.h"
/*
* replay a hash index meta page
diff --git a/src/backend/access/hash/hashfunc.c b/src/backend/access/hash/hashfunc.c
index 2d661fdddf5..ce8ee0ea2ef 100644
--- a/src/backend/access/hash/hashfunc.c
+++ b/src/backend/access/hash/hashfunc.c
@@ -26,11 +26,9 @@
#include "postgres.h"
-#include "access/hash.h"
-#include "catalog/pg_collation.h"
#include "common/hashfn.h"
-#include "utils/builtins.h"
#include "utils/float.h"
+#include "utils/fmgrprotos.h"
#include "utils/pg_locale.h"
#include "varatt.h"
diff --git a/src/backend/access/hash/hashinsert.c b/src/backend/access/hash/hashinsert.c
index f46d9d2e742..9ac16204118 100644
--- a/src/backend/access/hash/hashinsert.c
+++ b/src/backend/access/hash/hashinsert.c
@@ -19,8 +19,6 @@
#include "access/hash_xlog.h"
#include "access/xloginsert.h"
#include "miscadmin.h"
-#include "storage/buf_internals.h"
-#include "storage/lwlock.h"
#include "storage/predicate.h"
#include "utils/rel.h"
diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c
index 69b07b1453a..d09c349e28f 100644
--- a/src/backend/access/hash/hashpage.c
+++ b/src/backend/access/hash/hashpage.c
@@ -33,9 +33,9 @@
#include "access/xloginsert.h"
#include "miscadmin.h"
#include "port/pg_bitutils.h"
-#include "storage/lmgr.h"
#include "storage/predicate.h"
#include "storage/smgr.h"
+#include "utils/rel.h"
static bool _hash_alloc_buckets(Relation rel, BlockNumber firstblock,
uint32 nblocks);
diff --git a/src/backend/access/hash/hashutil.c b/src/backend/access/hash/hashutil.c
index 2c684808523..20028f5cd14 100644
--- a/src/backend/access/hash/hashutil.c
+++ b/src/backend/access/hash/hashutil.c
@@ -18,7 +18,6 @@
#include "access/reloptions.h"
#include "access/relscan.h"
#include "port/pg_bitutils.h"
-#include "storage/buf_internals.h"
#include "utils/lsyscache.h"
#include "utils/rel.h"
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 707460a5364..34bc60f625f 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -32,7 +32,6 @@
#include "postgres.h"
#include "access/bufmask.h"
-#include "access/genam.h"
#include "access/heapam.h"
#include "access/heapam_xlog.h"
#include "access/heaptoast.h"
@@ -62,12 +61,9 @@
#include "storage/lmgr.h"
#include "storage/predicate.h"
#include "storage/procarray.h"
-#include "storage/smgr.h"
-#include "storage/spin.h"
#include "storage/standby.h"
#include "utils/datum.h"
#include "utils/inval.h"
-#include "utils/lsyscache.h"
#include "utils/relcache.h"
#include "utils/snapmgr.h"
#include "utils/spccache.h"
diff --git a/src/backend/access/heap/heapam_visibility.c b/src/backend/access/heap/heapam_visibility.c
index 283cea76aa2..9243feed01f 100644
--- a/src/backend/access/heap/heapam_visibility.c
+++ b/src/backend/access/heap/heapam_visibility.c
@@ -69,7 +69,6 @@
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/multixact.h"
-#include "access/subtrans.h"
#include "access/tableam.h"
#include "access/transam.h"
#include "access/xact.h"
@@ -77,7 +76,6 @@
#include "storage/bufmgr.h"
#include "storage/procarray.h"
#include "utils/builtins.h"
-#include "utils/combocid.h"
#include "utils/snapmgr.h"
diff --git a/src/backend/access/heap/hio.c b/src/backend/access/heap/hio.c
index c7248d7c689..7c662cdf46e 100644
--- a/src/backend/access/heap/hio.c
+++ b/src/backend/access/heap/hio.c
@@ -22,7 +22,6 @@
#include "storage/bufmgr.h"
#include "storage/freespace.h"
#include "storage/lmgr.h"
-#include "storage/smgr.h"
/*
diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c
index 59176335676..e2f2c37f4d6 100644
--- a/src/backend/access/heap/pruneheap.c
+++ b/src/backend/access/heap/pruneheap.c
@@ -20,13 +20,11 @@
#include "access/transam.h"
#include "access/xlog.h"
#include "access/xloginsert.h"
-#include "catalog/catalog.h"
#include "miscadmin.h"
#include "pgstat.h"
#include "storage/bufmgr.h"
#include "utils/snapmgr.h"
#include "utils/rel.h"
-#include "utils/snapmgr.h"
/* Working data for heap_page_prune and subroutines */
typedef struct
diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c
index a578b876174..473f3aa9bef 100644
--- a/src/backend/access/heap/rewriteheap.c
+++ b/src/backend/access/heap/rewriteheap.c
@@ -111,12 +111,10 @@
#include "access/transam.h"
#include "access/xact.h"
#include "access/xloginsert.h"
-#include "catalog/catalog.h"
#include "common/file_utils.h"
#include "lib/ilist.h"
#include "miscadmin.h"
#include "pgstat.h"
-#include "replication/logical.h"
#include "replication/slot.h"
#include "storage/bufmgr.h"
#include "storage/bulk_write.h"
diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
index 5acea4a43a4..8b320c3f89a 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -34,7 +34,6 @@
#include <math.h>
-#include "access/amapi.h"
#include "access/genam.h"
#include "access/heapam.h"
#include "access/heapam_xlog.h"
@@ -42,24 +41,19 @@
#include "access/multixact.h"
#include "access/transam.h"
#include "access/visibilitymap.h"
-#include "access/xact.h"
-#include "access/xlog.h"
#include "access/xloginsert.h"
-#include "catalog/index.h"
#include "catalog/storage.h"
#include "commands/dbcommands.h"
#include "commands/progress.h"
#include "commands/vacuum.h"
#include "executor/instrument.h"
#include "miscadmin.h"
-#include "optimizer/paths.h"
#include "pgstat.h"
#include "portability/instr_time.h"
#include "postmaster/autovacuum.h"
#include "storage/bufmgr.h"
#include "storage/freespace.h"
#include "storage/lmgr.h"
-#include "tcop/tcopprot.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
#include "utils/pg_rusage.h"
diff --git a/src/backend/access/heap/visibilitymap.c b/src/backend/access/heap/visibilitymap.c
index 19785ff9d34..1ab6c865e3c 100644
--- a/src/backend/access/heap/visibilitymap.c
+++ b/src/backend/access/heap/visibilitymap.c
@@ -93,9 +93,9 @@
#include "miscadmin.h"
#include "port/pg_bitutils.h"
#include "storage/bufmgr.h"
-#include "storage/lmgr.h"
#include "storage/smgr.h"
#include "utils/inval.h"
+#include "utils/rel.h"
/*#define TRACE_VISIBILITYMAP */
diff --git a/src/backend/access/index/amapi.c b/src/backend/access/index/amapi.c
index ffc40e9d28b..079fb7cba65 100644
--- a/src/backend/access/index/amapi.c
+++ b/src/backend/access/index/amapi.c
@@ -17,7 +17,7 @@
#include "access/htup_details.h"
#include "catalog/pg_am.h"
#include "catalog/pg_opclass.h"
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
#include "utils/syscache.h"
diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c
index 7b6131b9e09..de751e8e4a3 100644
--- a/src/backend/access/index/genam.c
+++ b/src/backend/access/index/genam.c
@@ -20,7 +20,6 @@
#include "postgres.h"
#include "access/genam.h"
-#include "access/heapam.h"
#include "access/relscan.h"
#include "access/tableam.h"
#include "access/transam.h"
@@ -30,13 +29,11 @@
#include "storage/bufmgr.h"
#include "storage/procarray.h"
#include "utils/acl.h"
-#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/rel.h"
#include "utils/rls.h"
#include "utils/ruleutils.h"
#include "utils/snapmgr.h"
-#include "utils/syscache.h"
/* ----------------------------------------------------------------
diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c
index 14baacd61f4..78ac3b1abb3 100644
--- a/src/backend/access/index/indexam.c
+++ b/src/backend/access/index/indexam.c
@@ -44,19 +44,14 @@
#include "postgres.h"
#include "access/amapi.h"
-#include "access/heapam.h"
+#include "access/relation.h"
#include "access/reloptions.h"
#include "access/relscan.h"
#include "access/tableam.h"
-#include "access/transam.h"
-#include "access/xlog.h"
#include "catalog/index.h"
-#include "catalog/pg_amproc.h"
#include "catalog/pg_type.h"
-#include "commands/defrem.h"
-#include "nodes/makefuncs.h"
+#include "nodes/execnodes.h"
#include "pgstat.h"
-#include "storage/bufmgr.h"
#include "storage/lmgr.h"
#include "storage/predicate.h"
#include "utils/ruleutils.h"
diff --git a/src/backend/access/nbtree/nbtcompare.c b/src/backend/access/nbtree/nbtcompare.c
index 63149a2552c..1c72867c84e 100644
--- a/src/backend/access/nbtree/nbtcompare.c
+++ b/src/backend/access/nbtree/nbtcompare.c
@@ -57,7 +57,7 @@
#include <limits.h>
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
#include "utils/sortsupport.h"
#ifdef STRESS_SORT_INT_MIN
diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index e9cfc136042..7e8902e48cd 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -25,7 +25,6 @@
#include "miscadmin.h"
#include "storage/lmgr.h"
#include "storage/predicate.h"
-#include "storage/smgr.h"
/* Minimum tree height for application of fastpath optimization */
#define BTREE_FASTPATH_MIN_LEVEL 2
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index 90990ea77a1..01bbece6bfd 100644
--- a/src/backend/access/nbtree/nbtpage.c
+++ b/src/backend/access/nbtree/nbtpage.c
@@ -31,7 +31,6 @@
#include "common/int.h"
#include "miscadmin.h"
#include "storage/indexfsm.h"
-#include "storage/lmgr.h"
#include "storage/predicate.h"
#include "storage/procarray.h"
#include "utils/memdebug.h"
diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c
index 21d879a3bdf..41df1027d2d 100644
--- a/src/backend/access/nbtree/nbtree.c
+++ b/src/backend/access/nbtree/nbtree.c
@@ -19,22 +19,20 @@
#include "postgres.h"
#include "access/nbtree.h"
-#include "access/nbtxlog.h"
#include "access/relscan.h"
-#include "access/xlog.h"
#include "access/xloginsert.h"
#include "commands/progress.h"
#include "commands/vacuum.h"
#include "miscadmin.h"
#include "nodes/execnodes.h"
#include "pgstat.h"
-#include "postmaster/autovacuum.h"
#include "storage/bulk_write.h"
#include "storage/condition_variable.h"
#include "storage/indexfsm.h"
#include "storage/ipc.h"
#include "storage/lmgr.h"
-#include "utils/builtins.h"
+#include "storage/smgr.h"
+#include "utils/fmgrprotos.h"
#include "utils/index_selfuncs.h"
#include "utils/memutils.h"
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index 3f1e7b9c155..f5d7b3b0c30 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -45,7 +45,6 @@
#include "access/relscan.h"
#include "access/table.h"
#include "access/xact.h"
-#include "access/xlog.h"
#include "access/xloginsert.h"
#include "catalog/index.h"
#include "commands/progress.h"
diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index 490e7bfd4df..1f40d40263e 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -16,7 +16,6 @@
#include "access/nbtree.h"
#include "common/int.h"
-#include "storage/lmgr.h"
typedef enum
{
diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c
index 2e6fc14d7a0..d50317096da 100644
--- a/src/backend/access/nbtree/nbtutils.c
+++ b/src/backend/access/nbtree/nbtutils.c
@@ -20,7 +20,6 @@
#include "access/nbtree.h"
#include "access/reloptions.h"
#include "access/relscan.h"
-#include "catalog/catalog.h"
#include "commands/progress.h"
#include "lib/qunique.h"
#include "miscadmin.h"
diff --git a/src/backend/access/nbtree/nbtxlog.c b/src/backend/access/nbtree/nbtxlog.c
index f683c210569..b5b0e22447e 100644
--- a/src/backend/access/nbtree/nbtxlog.c
+++ b/src/backend/access/nbtree/nbtxlog.c
@@ -18,10 +18,8 @@
#include "access/nbtree.h"
#include "access/nbtxlog.h"
#include "access/transam.h"
-#include "access/xlog.h"
#include "access/xlogutils.h"
-#include "miscadmin.h"
-#include "storage/procarray.h"
+#include "storage/standby.h"
#include "utils/memutils.h"
static MemoryContext opCtx; /* working memory for operations */
diff --git a/src/backend/access/rmgrdesc/committsdesc.c b/src/backend/access/rmgrdesc/committsdesc.c
index c2b14f81533..f5f09a1bc79 100644
--- a/src/backend/access/rmgrdesc/committsdesc.c
+++ b/src/backend/access/rmgrdesc/committsdesc.c
@@ -15,7 +15,6 @@
#include "postgres.h"
#include "access/commit_ts.h"
-#include "utils/timestamp.h"
void
diff --git a/src/backend/access/rmgrdesc/genericdesc.c b/src/backend/access/rmgrdesc/genericdesc.c
index 04ff704effa..c35641483b8 100644
--- a/src/backend/access/rmgrdesc/genericdesc.c
+++ b/src/backend/access/rmgrdesc/genericdesc.c
@@ -15,7 +15,6 @@
#include "access/generic_xlog.h"
#include "lib/stringinfo.h"
-#include "storage/relfilelocator.h"
/*
* Description of generic xlog record: write page regions that this record
diff --git a/src/backend/access/rmgrdesc/gindesc.c b/src/backend/access/rmgrdesc/gindesc.c
index 93f7727a433..4746f246ff1 100644
--- a/src/backend/access/rmgrdesc/gindesc.c
+++ b/src/backend/access/rmgrdesc/gindesc.c
@@ -15,9 +15,7 @@
#include "postgres.h"
#include "access/ginxlog.h"
-#include "access/xlogutils.h"
#include "lib/stringinfo.h"
-#include "storage/relfilelocator.h"
static void
desc_recompress_leaf(StringInfo buf, ginxlogRecompressDataLeaf *insertData)
diff --git a/src/backend/access/rmgrdesc/gistdesc.c b/src/backend/access/rmgrdesc/gistdesc.c
index ce37f31e5d9..5efbbf72e57 100644
--- a/src/backend/access/rmgrdesc/gistdesc.c
+++ b/src/backend/access/rmgrdesc/gistdesc.c
@@ -16,7 +16,6 @@
#include "access/gistxlog.h"
#include "lib/stringinfo.h"
-#include "storage/relfilelocator.h"
static void
out_gistxlogPageUpdate(StringInfo buf, gistxlogPageUpdate *xlrec)
diff --git a/src/backend/access/spgist/spginsert.c b/src/backend/access/spgist/spginsert.c
index 1b70c5a59fd..1bec19c2b88 100644
--- a/src/backend/access/spgist/spginsert.c
+++ b/src/backend/access/spgist/spginsert.c
@@ -18,12 +18,10 @@
#include "access/genam.h"
#include "access/spgist_private.h"
-#include "access/spgxlog.h"
#include "access/tableam.h"
-#include "access/xlog.h"
#include "access/xloginsert.h"
-#include "catalog/index.h"
#include "miscadmin.h"
+#include "nodes/execnodes.h"
#include "storage/bufmgr.h"
#include "storage/bulk_write.h"
#include "utils/memutils.h"
diff --git a/src/backend/access/spgist/spgkdtreeproc.c b/src/backend/access/spgist/spgkdtreeproc.c
index 900fe0d2af5..44d05452520 100644
--- a/src/backend/access/spgist/spgkdtreeproc.c
+++ b/src/backend/access/spgist/spgkdtreeproc.c
@@ -19,8 +19,8 @@
#include "access/spgist_private.h"
#include "access/stratnum.h"
#include "catalog/pg_type.h"
-#include "utils/builtins.h"
#include "utils/float.h"
+#include "utils/fmgrprotos.h"
#include "utils/geo_decls.h"
diff --git a/src/backend/access/spgist/spgproc.c b/src/backend/access/spgist/spgproc.c
index e7797067292..89699e7e7ff 100644
--- a/src/backend/access/spgist/spgproc.c
+++ b/src/backend/access/spgist/spgproc.c
@@ -18,8 +18,8 @@
#include <math.h>
#include "access/spgist_private.h"
-#include "utils/builtins.h"
#include "utils/float.h"
+#include "utils/fmgrprotos.h"
#include "utils/geo_decls.h"
#define point_point_distance(p1,p2) \
diff --git a/src/backend/access/spgist/spgquadtreeproc.c b/src/backend/access/spgist/spgquadtreeproc.c
index 3543936fbc3..791db1d42e0 100644
--- a/src/backend/access/spgist/spgquadtreeproc.c
+++ b/src/backend/access/spgist/spgquadtreeproc.c
@@ -19,8 +19,8 @@
#include "access/spgist_private.h"
#include "access/stratnum.h"
#include "catalog/pg_type.h"
-#include "utils/builtins.h"
#include "utils/float.h"
+#include "utils/fmgrprotos.h"
#include "utils/geo_decls.h"
Datum
diff --git a/src/backend/access/spgist/spgtextproc.c b/src/backend/access/spgist/spgtextproc.c
index d5db5225a9c..06042feb115 100644
--- a/src/backend/access/spgist/spgtextproc.c
+++ b/src/backend/access/spgist/spgtextproc.c
@@ -43,8 +43,8 @@
#include "common/int.h"
#include "catalog/pg_type.h"
#include "mb/pg_wchar.h"
-#include "utils/builtins.h"
#include "utils/datum.h"
+#include "utils/fmgrprotos.h"
#include "utils/pg_locale.h"
#include "utils/varlena.h"
#include "varatt.h"
diff --git a/src/backend/access/spgist/spgutils.c b/src/backend/access/spgist/spgutils.c
index 5b5e6e82d39..3f793125f74 100644
--- a/src/backend/access/spgist/spgutils.c
+++ b/src/backend/access/spgist/spgutils.c
@@ -28,11 +28,11 @@
#include "parser/parse_coerce.h"
#include "storage/bufmgr.h"
#include "storage/indexfsm.h"
-#include "storage/lmgr.h"
-#include "utils/builtins.h"
#include "utils/catcache.h"
+#include "utils/fmgrprotos.h"
#include "utils/index_selfuncs.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/access/spgist/spgvacuum.c b/src/backend/access/spgist/spgvacuum.c
index ff82b97dd88..d2e1624924a 100644
--- a/src/backend/access/spgist/spgvacuum.c
+++ b/src/backend/access/spgist/spgvacuum.c
@@ -20,7 +20,6 @@
#include "access/spgxlog.h"
#include "access/transam.h"
#include "access/xloginsert.h"
-#include "catalog/storage_xlog.h"
#include "commands/vacuum.h"
#include "miscadmin.h"
#include "storage/bufmgr.h"
diff --git a/src/backend/access/spgist/spgvalidate.c b/src/backend/access/spgist/spgvalidate.c
index 8834f22ba85..850c3b675d6 100644
--- a/src/backend/access/spgist/spgvalidate.c
+++ b/src/backend/access/spgist/spgvalidate.c
@@ -15,7 +15,7 @@
#include "access/amvalidate.h"
#include "access/htup_details.h"
-#include "access/spgist_private.h"
+#include "access/spgist.h"
#include "catalog/pg_amop.h"
#include "catalog/pg_amproc.h"
#include "catalog/pg_opclass.h"
diff --git a/src/backend/access/spgist/spgxlog.c b/src/backend/access/spgist/spgxlog.c
index 3ca7d18868c..11d006998ed 100644
--- a/src/backend/access/spgist/spgxlog.c
+++ b/src/backend/access/spgist/spgxlog.c
@@ -17,8 +17,6 @@
#include "access/bufmask.h"
#include "access/spgist_private.h"
#include "access/spgxlog.h"
-#include "access/transam.h"
-#include "access/xlog.h"
#include "access/xlogutils.h"
#include "storage/standby.h"
#include "utils/memutils.h"
diff --git a/src/backend/access/table/table.c b/src/backend/access/table/table.c
index 4746142c5db..e589730ca08 100644
--- a/src/backend/access/table/table.c
+++ b/src/backend/access/table/table.c
@@ -23,7 +23,7 @@
#include "access/relation.h"
#include "access/table.h"
-#include "storage/lmgr.h"
+#include "utils/rel.h"
static inline void validate_relation_kind(Relation r);
diff --git a/src/backend/access/table/tableamapi.c b/src/backend/access/table/tableamapi.c
index 1f13091338e..ce637a5a5d9 100644
--- a/src/backend/access/table/tableamapi.c
+++ b/src/backend/access/table/tableamapi.c
@@ -11,18 +11,11 @@
*/
#include "postgres.h"
-#include "access/heapam.h"
-#include "access/htup_details.h"
#include "access/tableam.h"
#include "access/xact.h"
-#include "catalog/pg_am.h"
-#include "catalog/pg_proc.h"
#include "commands/defrem.h"
#include "miscadmin.h"
-#include "utils/fmgroids.h"
#include "utils/guc_hooks.h"
-#include "utils/memutils.h"
-#include "utils/syscache.h"
/*
diff --git a/src/backend/access/table/toast_helper.c b/src/backend/access/table/toast_helper.c
index 3bcde2ca1ba..53224932f0d 100644
--- a/src/backend/access/table/toast_helper.c
+++ b/src/backend/access/table/toast_helper.c
@@ -15,7 +15,6 @@
#include "postgres.h"
#include "access/detoast.h"
-#include "access/table.h"
#include "access/toast_helper.h"
#include "access/toast_internals.h"
#include "catalog/pg_type_d.h"
diff --git a/src/backend/access/tablesample/bernoulli.c b/src/backend/access/tablesample/bernoulli.c
index b94be1146a0..c8ac308ff8c 100644
--- a/src/backend/access/tablesample/bernoulli.c
+++ b/src/backend/access/tablesample/bernoulli.c
@@ -30,7 +30,7 @@
#include "catalog/pg_type.h"
#include "common/hashfn.h"
#include "optimizer/optimizer.h"
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
/* Private state */
diff --git a/src/backend/access/tablesample/system.c b/src/backend/access/tablesample/system.c
index e8d86c79fe8..fe483ab8597 100644
--- a/src/backend/access/tablesample/system.c
+++ b/src/backend/access/tablesample/system.c
@@ -26,12 +26,11 @@
#include <math.h>
-#include "access/relscan.h"
#include "access/tsmapi.h"
#include "catalog/pg_type.h"
#include "common/hashfn.h"
#include "optimizer/optimizer.h"
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
/* Private state */
diff --git a/src/backend/access/transam/commit_ts.c b/src/backend/access/transam/commit_ts.c
index 5c35a18348c..f2214946874 100644
--- a/src/backend/access/transam/commit_ts.c
+++ b/src/backend/access/transam/commit_ts.c
@@ -27,14 +27,11 @@
#include "access/transam.h"
#include "access/xloginsert.h"
#include "access/xlogutils.h"
-#include "catalog/pg_type.h"
#include "funcapi.h"
#include "miscadmin.h"
-#include "pg_trace.h"
#include "storage/shmem.h"
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
#include "utils/guc_hooks.h"
-#include "utils/snapmgr.h"
#include "utils/timestamp.h"
/*
diff --git a/src/backend/access/transam/generic_xlog.c b/src/backend/access/transam/generic_xlog.c
index 5626045998b..e8522781631 100644
--- a/src/backend/access/transam/generic_xlog.c
+++ b/src/backend/access/transam/generic_xlog.c
@@ -17,7 +17,6 @@
#include "access/generic_xlog.h"
#include "access/xlogutils.h"
#include "miscadmin.h"
-#include "utils/memutils.h"
/*-------------------------------------------------------------------------
* Internally, a delta between pages consists of a set of fragments. Each
diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index 9dc7aa9c2f4..cd476b94faa 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -74,23 +74,21 @@
#include "access/twophase.h"
#include "access/twophase_rmgr.h"
#include "access/xact.h"
+#include "access/xlog.h"
#include "access/xloginsert.h"
#include "access/xlogutils.h"
-#include "catalog/pg_type.h"
#include "commands/dbcommands.h"
#include "funcapi.h"
#include "lib/ilist.h"
#include "miscadmin.h"
#include "pg_trace.h"
#include "postmaster/autovacuum.h"
-#include "storage/lmgr.h"
#include "storage/pmsignal.h"
#include "storage/proc.h"
#include "storage/procarray.h"
-#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
#include "utils/guc_hooks.h"
#include "utils/memutils.h"
-#include "utils/snapmgr.h"
/*
diff --git a/src/backend/access/transam/parallel.c b/src/backend/access/transam/parallel.c
index 798cd86c881..751c251cf52 100644
--- a/src/backend/access/transam/parallel.c
+++ b/src/backend/access/transam/parallel.c
@@ -25,7 +25,6 @@
#include "catalog/pg_enum.h"
#include "catalog/storage.h"
#include "commands/async.h"
-#include "commands/progress.h"
#include "commands/vacuum.h"
#include "executor/execParallel.h"
#include "libpq/libpq.h"
@@ -36,7 +35,6 @@
#include "pgstat.h"
#include "storage/ipc.h"
#include "storage/predicate.h"
-#include "storage/sinval.h"
#include "storage/spin.h"
#include "tcop/tcopprot.h"
#include "utils/combocid.h"
@@ -45,7 +43,6 @@
#include "utils/memutils.h"
#include "utils/relmapper.h"
#include "utils/snapmgr.h"
-#include "utils/typcache.h"
/*
* We don't want to waste a lot of memory on an error queue which, most of
diff --git a/src/backend/access/transam/rmgr.c b/src/backend/access/transam/rmgr.c
index 7d67eda5f79..3e2f1d4a237 100644
--- a/src/backend/access/transam/rmgr.c
+++ b/src/backend/access/transam/rmgr.c
@@ -7,6 +7,18 @@
*/
#include "postgres.h"
+#include "access/rmgr.h"
+#include "access/xlog_internal.h"
+#include "fmgr.h"
+#include "funcapi.h"
+#include "miscadmin.h"
+#include "nodes/execnodes.h"
+#include "utils/builtins.h"
+#include "utils/fmgrprotos.h"
+#include "utils/tuplestore.h"
+
+/* includes needed for "access/rmgrlist.h" */
+/* IWYU pragma: begin_keep */
#include "access/brin_xlog.h"
#include "access/clog.h"
#include "access/commit_ts.h"
@@ -19,20 +31,17 @@
#include "access/nbtxlog.h"
#include "access/spgxlog.h"
#include "access/xact.h"
-#include "access/xlog_internal.h"
#include "catalog/storage_xlog.h"
#include "commands/dbcommands_xlog.h"
#include "commands/sequence.h"
#include "commands/tablespace.h"
-#include "fmgr.h"
-#include "funcapi.h"
-#include "miscadmin.h"
#include "replication/decode.h"
#include "replication/message.h"
#include "replication/origin.h"
#include "storage/standby.h"
-#include "utils/builtins.h"
#include "utils/relmapper.h"
+/* IWYU pragma: end_keep */
+
/* must be kept in sync with RmgrData definition in xlog_internal.h */
#define PG_RMGR(symname,name,redo,desc,identify,startup,cleanup,mask,decode) \
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
index a42af293437..8090ac9fc19 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -96,15 +96,12 @@
#include "pgstat.h"
#include "replication/origin.h"
#include "replication/syncrep.h"
-#include "replication/walsender.h"
#include "storage/fd.h"
#include "storage/ipc.h"
#include "storage/md.h"
#include "storage/predicate.h"
#include "storage/proc.h"
#include "storage/procarray.h"
-#include "storage/sinvaladt.h"
-#include "storage/smgr.h"
#include "utils/builtins.h"
#include "utils/memutils.h"
#include "utils/timestamp.h"
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index e270007e28e..ccd3f4fc550 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -51,7 +51,6 @@
#include "replication/origin.h"
#include "replication/snapbuild.h"
#include "replication/syncrep.h"
-#include "replication/walsender.h"
#include "storage/condition_variable.h"
#include "storage/fd.h"
#include "storage/lmgr.h"
@@ -62,7 +61,6 @@
#include "storage/sinvaladt.h"
#include "storage/smgr.h"
#include "utils/builtins.h"
-#include "utils/catcache.h"
#include "utils/combocid.h"
#include "utils/guc.h"
#include "utils/inval.h"
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index c9c9b37fbb9..20a5f862090 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -59,7 +59,6 @@
#include "access/xlog_internal.h"
#include "access/xlogarchive.h"
#include "access/xloginsert.h"
-#include "access/xlogprefetcher.h"
#include "access/xlogreader.h"
#include "access/xlogrecovery.h"
#include "access/xlogutils.h"
@@ -79,7 +78,6 @@
#include "postmaster/startup.h"
#include "postmaster/walsummarizer.h"
#include "postmaster/walwriter.h"
-#include "replication/logical.h"
#include "replication/origin.h"
#include "replication/slot.h"
#include "replication/snapbuild.h"
@@ -90,12 +88,10 @@
#include "storage/ipc.h"
#include "storage/large_object.h"
#include "storage/latch.h"
-#include "storage/pmsignal.h"
#include "storage/predicate.h"
#include "storage/proc.h"
#include "storage/procarray.h"
#include "storage/reinit.h"
-#include "storage/smgr.h"
#include "storage/spin.h"
#include "storage/sync.h"
#include "utils/guc_hooks.h"
@@ -104,7 +100,6 @@
#include "utils/memutils.h"
#include "utils/ps_status.h"
#include "utils/relmapper.h"
-#include "utils/pg_rusage.h"
#include "utils/snapmgr.h"
#include "utils/timeout.h"
#include "utils/timestamp.h"
diff --git a/src/backend/access/transam/xlogarchive.c b/src/backend/access/transam/xlogarchive.c
index 1292b11f2eb..977a2fe06b5 100644
--- a/src/backend/access/transam/xlogarchive.c
+++ b/src/backend/access/transam/xlogarchive.c
@@ -31,7 +31,6 @@
#include "replication/walsender.h"
#include "storage/fd.h"
#include "storage/ipc.h"
-#include "storage/lwlock.h"
/*
* Attempt to retrieve the specified file from off-line archival storage.
diff --git a/src/backend/access/transam/xlogfuncs.c b/src/backend/access/transam/xlogfuncs.c
index 2b669357de8..92bdb17ed52 100644
--- a/src/backend/access/transam/xlogfuncs.c
+++ b/src/backend/access/transam/xlogfuncs.c
@@ -22,23 +22,17 @@
#include "access/xlog_internal.h"
#include "access/xlogbackup.h"
#include "access/xlogrecovery.h"
-#include "access/xlogutils.h"
#include "catalog/pg_type.h"
#include "funcapi.h"
#include "miscadmin.h"
#include "pgstat.h"
#include "replication/walreceiver.h"
#include "storage/fd.h"
-#include "storage/ipc.h"
-#include "storage/smgr.h"
#include "storage/standby.h"
#include "utils/builtins.h"
-#include "utils/guc.h"
#include "utils/memutils.h"
-#include "utils/numeric.h"
#include "utils/pg_lsn.h"
#include "utils/timestamp.h"
-#include "utils/tuplestore.h"
/*
* Backup-related variables.
diff --git a/src/backend/access/transam/xloginsert.c b/src/backend/access/transam/xloginsert.c
index 0fa8d3fc511..90476015347 100644
--- a/src/backend/access/transam/xloginsert.c
+++ b/src/backend/access/transam/xloginsert.c
@@ -33,7 +33,6 @@
#include "access/xloginsert.h"
#include "catalog/pg_control.h"
#include "common/pg_lzcompress.h"
-#include "executor/instrument.h"
#include "miscadmin.h"
#include "pg_trace.h"
#include "replication/origin.h"
diff --git a/src/backend/access/transam/xlogprefetcher.c b/src/backend/access/transam/xlogprefetcher.c
index aa26ea2ef73..c3f52a8bd11 100644
--- a/src/backend/access/transam/xlogprefetcher.c
+++ b/src/backend/access/transam/xlogprefetcher.c
@@ -27,18 +27,14 @@
#include "postgres.h"
-#include "access/xlog.h"
#include "access/xlogprefetcher.h"
#include "access/xlogreader.h"
-#include "access/xlogutils.h"
-#include "catalog/pg_class.h"
#include "catalog/pg_control.h"
#include "catalog/storage_xlog.h"
#include "commands/dbcommands_xlog.h"
#include "utils/fmgrprotos.h"
#include "utils/timestamp.h"
#include "funcapi.h"
-#include "pgstat.h"
#include "miscadmin.h"
#include "port/atomics.h"
#include "storage/bufmgr.h"
diff --git a/src/backend/access/transam/xlogreader.c b/src/backend/access/transam/xlogreader.c
index 74a6b118669..37d2a57961d 100644
--- a/src/backend/access/transam/xlogreader.c
+++ b/src/backend/access/transam/xlogreader.c
@@ -34,9 +34,7 @@
#include "replication/origin.h"
#ifndef FRONTEND
-#include "miscadmin.h"
#include "pgstat.h"
-#include "utils/memutils.h"
#else
#include "common/logging.h"
#endif
diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c
index 9d907bf0e45..853b540945b 100644
--- a/src/backend/access/transam/xlogrecovery.c
+++ b/src/backend/access/transam/xlogrecovery.c
@@ -55,11 +55,10 @@
#include "storage/ipc.h"
#include "storage/latch.h"
#include "storage/pmsignal.h"
-#include "storage/proc.h"
#include "storage/procarray.h"
#include "storage/spin.h"
-#include "utils/builtins.h"
#include "utils/datetime.h"
+#include "utils/fmgrprotos.h"
#include "utils/guc_hooks.h"
#include "utils/pg_lsn.h"
#include "utils/ps_status.h"
diff --git a/src/backend/access/transam/xlogutils.c b/src/backend/access/transam/xlogutils.c
index f65554eb8f7..5295b85fe07 100644
--- a/src/backend/access/transam/xlogutils.c
+++ b/src/backend/access/transam/xlogutils.c
@@ -22,13 +22,10 @@
#include "access/timeline.h"
#include "access/xlogrecovery.h"
#include "access/xlog_internal.h"
-#include "access/xlogprefetcher.h"
#include "access/xlogutils.h"
#include "miscadmin.h"
-#include "pgstat.h"
#include "storage/fd.h"
#include "storage/smgr.h"
-#include "utils/guc.h"
#include "utils/hsearch.h"
#include "utils/rel.h"