I have done a pass over much of the source code with include-what-you-use (IWYU) to remove superfluous includes (commits dbbca2cf299, 9be4e5d293b, ecb5af77987). Along the way I have collected some pragma annotations to deal with exceptions and special cases and peculiarities of the PostgreSQL source code header structures (see [0] for description). Here I'm proposing a set of patches to add such annotations in commonly useful cases that should deal with most of the noise.

[0]: https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md
From 0ee1c6c9f620ca8e1e3f9c601e5aa335a95c91d3 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Mon, 9 Dec 2024 12:25:10 +0100
Subject: [PATCH 1/2] IWYU widely useful pragmas

Add various widely useful "IWYU pragma" annotations, such as

- Common header files such as c.h, postgres.h should be "always_keep".

- System headers included in c.h, postgres.h etc. should be considered
  "export".

- Some portability headers such as getopt_long.h should be
  "always_keep", so they are not considered superfluous on some
  platforms.

- Certain system headers included from portability headers should be
  considered "export" because the purpose of the portability header is
  to wrap them.

- Superfluous includes marked as "for backward compatibility" get a
  formal IWYU annotation.

- Special handling of access/rmgrlist.h in
  src/bin/pg_waldump/rmgrdesc.c, similar to what was already done in
  src/backend/access/transam/rmgr.c.

- Generated header included in utils/syscache.h is marked exported.
  This is a very commonly used include and this avoids lots of
  complaints.
---
 src/bin/pg_waldump/rmgrdesc.c    | 10 +++++++---
 src/include/c.h                  |  5 +++++
 src/include/getopt_long.h        |  3 ++-
 src/include/pg_getopt.h          |  5 +++--
 src/include/pg_trace.h           |  2 +-
 src/include/pgstat.h             |  6 +++---
 src/include/port/pg_iovec.h      |  2 +-
 src/include/port/pg_pthread.h    |  2 +-
 src/include/postgres.h           |  5 +++++
 src/include/postgres_ext.h       |  1 +
 src/include/postgres_fe.h        |  5 +++++
 src/include/utils/syscache.h     |  2 +-
 src/interfaces/libpq/libpq-int.h |  2 ++
 13 files changed, 37 insertions(+), 13 deletions(-)

diff --git a/src/bin/pg_waldump/rmgrdesc.c b/src/bin/pg_waldump/rmgrdesc.c
index 6b8c17bb4c4..f5f53ceda32 100644
--- a/src/bin/pg_waldump/rmgrdesc.c
+++ b/src/bin/pg_waldump/rmgrdesc.c
@@ -8,6 +8,12 @@
 #define FRONTEND 1
 #include "postgres.h"
 
+#include "access/rmgr.h"
+#include "access/xlog_internal.h"
+#include "rmgrdesc.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"
@@ -18,19 +24,17 @@
 #include "access/heapam_xlog.h"
 #include "access/multixact.h"
 #include "access/nbtxlog.h"
-#include "access/rmgr.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 "replication/message.h"
 #include "replication/origin.h"
-#include "rmgrdesc.h"
 #include "storage/standbydefs.h"
 #include "utils/relmapper.h"
+/* IWYU pragma: end_keep */
 
 #define PG_RMGR(symname,name,redo,desc,identify,startup,cleanup,mask,decode) \
        { name, desc, identify},
diff --git a/src/include/c.h b/src/include/c.h
index 13bb39fdef3..884128e781d 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -16,6 +16,7 @@
  *
  *-------------------------------------------------------------------------
  */
+/* IWYU pragma: always_keep */
 /*
  *----------------------------------------------------------------
  *      TABLE OF CONTENTS
@@ -46,6 +47,8 @@
 #ifndef C_H
 #define C_H
 
+/* IWYU pragma: begin_exports */
+
 /*
  * These headers must be included before any system headers, because on some
  * platforms they affect the behavior of the system headers (for example, by
@@ -1327,4 +1330,6 @@ typedef intptr_t sigjmp_buf[5];
 /* /port compatibility functions */
 #include "port.h"
 
+/* IWYU pragma: end_exports */
+
 #endif                                                 /* C_H */
diff --git a/src/include/getopt_long.h b/src/include/getopt_long.h
index 0fdbefae7fb..a15ebbc0037 100644
--- a/src/include/getopt_long.h
+++ b/src/include/getopt_long.h
@@ -6,10 +6,11 @@
  *
  * src/include/getopt_long.h
  */
+/* IWYU pragma: always_keep */
 #ifndef GETOPT_LONG_H
 #define GETOPT_LONG_H
 
-#include "pg_getopt.h"
+#include "pg_getopt.h"                 /* IWYU pragma: export */
 
 #ifndef HAVE_STRUCT_OPTION
 
diff --git a/src/include/pg_getopt.h b/src/include/pg_getopt.h
index c87ea20b14f..698cc61ce83 100644
--- a/src/include/pg_getopt.h
+++ b/src/include/pg_getopt.h
@@ -15,15 +15,16 @@
  *
  * src/include/pg_getopt.h
  */
+/* IWYU pragma: always_keep */
 #ifndef PG_GETOPT_H
 #define PG_GETOPT_H
 
 /* POSIX says getopt() is provided by unistd.h */
-#include <unistd.h>
+#include <unistd.h>                            /* IWYU pragma: export */
 
 /* rely on the system's getopt.h if present */
 #ifdef HAVE_GETOPT_H
-#include <getopt.h>
+#include <getopt.h>                            /* IWYU pragma: export */
 #endif
 
 /*
diff --git a/src/include/pg_trace.h b/src/include/pg_trace.h
index bae819ab466..00c172d7435 100644
--- a/src/include/pg_trace.h
+++ b/src/include/pg_trace.h
@@ -12,6 +12,6 @@
 #ifndef PG_TRACE_H
 #define PG_TRACE_H
 
-#include "utils/probes.h"              /* pgrminclude ignore */
+#include "utils/probes.h"              /* pgrminclude ignore */        /* IWYU 
pragma: export */
 
 #endif                                                 /* PG_TRACE_H */
diff --git a/src/include/pgstat.h b/src/include/pgstat.h
index 59c28b4aca8..5fe9158559f 100644
--- a/src/include/pgstat.h
+++ b/src/include/pgstat.h
@@ -16,10 +16,10 @@
 #include "portability/instr_time.h"
 #include "postmaster/pgarch.h" /* for MAX_XFN_CHARS */
 #include "replication/conflict.h"
-#include "utils/backend_progress.h" /* for backward compatibility */
-#include "utils/backend_status.h"      /* for backward compatibility */
+#include "utils/backend_progress.h" /* for backward compatibility */   /* IWYU 
pragma: export */
+#include "utils/backend_status.h"      /* for backward compatibility */        
/* IWYU pragma: export */
 #include "utils/relcache.h"
-#include "utils/wait_event.h"  /* for backward compatibility */
+#include "utils/wait_event.h"  /* for backward compatibility */        /* IWYU 
pragma: export */
 
 
 /* ----------
diff --git a/src/include/port/pg_iovec.h b/src/include/port/pg_iovec.h
index e5fe677b371..7df67b081fa 100644
--- a/src/include/port/pg_iovec.h
+++ b/src/include/port/pg_iovec.h
@@ -16,7 +16,7 @@
 #ifndef WIN32
 
 #include <limits.h>
-#include <sys/uio.h>
+#include <sys/uio.h>                   /* IWYU pragma: export */
 #include <unistd.h>
 
 #else
diff --git a/src/include/port/pg_pthread.h b/src/include/port/pg_pthread.h
index d102ce9d6f3..4dbb3c8a52f 100644
--- a/src/include/port/pg_pthread.h
+++ b/src/include/port/pg_pthread.h
@@ -13,7 +13,7 @@
 #ifndef PG_PTHREAD_H
 #define PG_PTHREAD_H
 
-#include <pthread.h>
+#include <pthread.h>                   /* IWYU pragma: export */
 
 #ifndef HAVE_PTHREAD_BARRIER_WAIT
 
diff --git a/src/include/postgres.h b/src/include/postgres.h
index 5d5fd7813e8..65e574c8570 100644
--- a/src/include/postgres.h
+++ b/src/include/postgres.h
@@ -14,6 +14,7 @@
  *
  *-------------------------------------------------------------------------
  */
+/* IWYU pragma: always_keep */
 /*
  *----------------------------------------------------------------
  *      TABLE OF CONTENTS
@@ -42,10 +43,14 @@
 #ifndef POSTGRES_H
 #define POSTGRES_H
 
+/* IWYU pragma: begin_exports */
+
 #include "c.h"
 #include "utils/elog.h"
 #include "utils/palloc.h"
 
+/* IWYU pragma: end_exports */
+
 /* ----------------------------------------------------------------
  *                             Section 1:      Datum type + support functions
  * ----------------------------------------------------------------
diff --git a/src/include/postgres_ext.h b/src/include/postgres_ext.h
index 202eb049622..9f2e3c52972 100644
--- a/src/include/postgres_ext.h
+++ b/src/include/postgres_ext.h
@@ -19,6 +19,7 @@
  *
  *-------------------------------------------------------------------------
  */
+/* IWYU pragma: always_keep */
 
 #ifndef POSTGRES_EXT_H
 #define POSTGRES_EXT_H
diff --git a/src/include/postgres_fe.h b/src/include/postgres_fe.h
index 9c605daa365..33eb594380c 100644
--- a/src/include/postgres_fe.h
+++ b/src/include/postgres_fe.h
@@ -15,6 +15,7 @@
  *
  *-------------------------------------------------------------------------
  */
+/* IWYU pragma: always_keep */
 #ifndef POSTGRES_FE_H
 #define POSTGRES_FE_H
 
@@ -22,8 +23,12 @@
 #define FRONTEND 1
 #endif
 
+/* IWYU pragma: begin_exports */
+
 #include "c.h"
 
 #include "common/fe_memutils.h"
 
+/* IWYU pragma: end_exports */
+
 #endif                                                 /* POSTGRES_FE_H */
diff --git a/src/include/utils/syscache.h b/src/include/utils/syscache.h
index b541911c8fc..c71934f1e86 100644
--- a/src/include/utils/syscache.h
+++ b/src/include/utils/syscache.h
@@ -20,7 +20,7 @@
 #include "access/htup.h"
 /* we intentionally do not include utils/catcache.h here */
 
-#include "catalog/syscache_ids.h"
+#include "catalog/syscache_ids.h"      /* IWYU pragma: export */
 
 extern void InitCatalogCache(void);
 extern void InitCatalogCachePhase2(void);
diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h
index 4606eb2ad34..3fff069598e 100644
--- a/src/interfaces/libpq/libpq-int.h
+++ b/src/interfaces/libpq/libpq-int.h
@@ -41,6 +41,7 @@
 #include "fe-auth-sasl.h"
 #include "pqexpbuffer.h"
 
+/* IWYU pragma: begin_exports */
 #ifdef ENABLE_GSS
 #if defined(HAVE_GSSAPI_H)
 #include <gssapi.h>
@@ -48,6 +49,7 @@
 #include <gssapi/gssapi.h>
 #endif
 #endif
+/* IWYU pragma: end_exports */
 
 #ifdef ENABLE_SSPI
 #define SECURITY_WIN32
-- 
2.47.1

From 06e03c04b65abb16ad606e5e1415868eecf51c37 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Mon, 9 Dec 2024 12:25:25 +0100
Subject: [PATCH 2/2] IWYU pragmas for catalog headers

Add "IWYU pragma: export" annotations in each catalog header file so
that, for instance, including "catalog/pg_aggregate.h" is considered
acceptable in place of "catalog/pg_aggregate_d.h".  This is very
common and it seems better to silence IWYU about it than trying to fix
this up.
---
 src/include/catalog/pg_aggregate.h             | 2 +-
 src/include/catalog/pg_am.h                    | 2 +-
 src/include/catalog/pg_amop.h                  | 2 +-
 src/include/catalog/pg_amproc.h                | 2 +-
 src/include/catalog/pg_attrdef.h               | 2 +-
 src/include/catalog/pg_attribute.h             | 2 +-
 src/include/catalog/pg_auth_members.h          | 2 +-
 src/include/catalog/pg_authid.h                | 2 +-
 src/include/catalog/pg_cast.h                  | 2 +-
 src/include/catalog/pg_class.h                 | 2 +-
 src/include/catalog/pg_collation.h             | 2 +-
 src/include/catalog/pg_constraint.h            | 2 +-
 src/include/catalog/pg_conversion.h            | 2 +-
 src/include/catalog/pg_database.h              | 2 +-
 src/include/catalog/pg_db_role_setting.h       | 2 +-
 src/include/catalog/pg_default_acl.h           | 2 +-
 src/include/catalog/pg_depend.h                | 2 +-
 src/include/catalog/pg_description.h           | 2 +-
 src/include/catalog/pg_enum.h                  | 2 +-
 src/include/catalog/pg_event_trigger.h         | 2 +-
 src/include/catalog/pg_extension.h             | 2 +-
 src/include/catalog/pg_foreign_data_wrapper.h  | 2 +-
 src/include/catalog/pg_foreign_server.h        | 2 +-
 src/include/catalog/pg_foreign_table.h         | 2 +-
 src/include/catalog/pg_index.h                 | 2 +-
 src/include/catalog/pg_inherits.h              | 2 +-
 src/include/catalog/pg_init_privs.h            | 2 +-
 src/include/catalog/pg_language.h              | 2 +-
 src/include/catalog/pg_largeobject.h           | 2 +-
 src/include/catalog/pg_largeobject_metadata.h  | 2 +-
 src/include/catalog/pg_namespace.h             | 2 +-
 src/include/catalog/pg_opclass.h               | 2 +-
 src/include/catalog/pg_operator.h              | 2 +-
 src/include/catalog/pg_opfamily.h              | 2 +-
 src/include/catalog/pg_parameter_acl.h         | 2 +-
 src/include/catalog/pg_partitioned_table.h     | 2 +-
 src/include/catalog/pg_policy.h                | 2 +-
 src/include/catalog/pg_proc.h                  | 2 +-
 src/include/catalog/pg_publication.h           | 2 +-
 src/include/catalog/pg_publication_namespace.h | 2 +-
 src/include/catalog/pg_publication_rel.h       | 2 +-
 src/include/catalog/pg_range.h                 | 2 +-
 src/include/catalog/pg_replication_origin.h    | 2 +-
 src/include/catalog/pg_rewrite.h               | 2 +-
 src/include/catalog/pg_seclabel.h              | 2 +-
 src/include/catalog/pg_sequence.h              | 2 +-
 src/include/catalog/pg_shdepend.h              | 2 +-
 src/include/catalog/pg_shdescription.h         | 2 +-
 src/include/catalog/pg_shseclabel.h            | 2 +-
 src/include/catalog/pg_statistic.h             | 2 +-
 src/include/catalog/pg_statistic_ext.h         | 2 +-
 src/include/catalog/pg_statistic_ext_data.h    | 2 +-
 src/include/catalog/pg_subscription.h          | 2 +-
 src/include/catalog/pg_subscription_rel.h      | 2 +-
 src/include/catalog/pg_tablespace.h            | 2 +-
 src/include/catalog/pg_transform.h             | 2 +-
 src/include/catalog/pg_trigger.h               | 2 +-
 src/include/catalog/pg_ts_config.h             | 2 +-
 src/include/catalog/pg_ts_dict.h               | 2 +-
 src/include/catalog/pg_ts_parser.h             | 2 +-
 src/include/catalog/pg_ts_template.h           | 2 +-
 src/include/catalog/pg_type.h                  | 2 +-
 src/include/catalog/pg_user_mapping.h          | 2 +-
 63 files changed, 63 insertions(+), 63 deletions(-)

diff --git a/src/include/catalog/pg_aggregate.h 
b/src/include/catalog/pg_aggregate.h
index 490f6454695..ba490e45a12 100644
--- a/src/include/catalog/pg_aggregate.h
+++ b/src/include/catalog/pg_aggregate.h
@@ -19,7 +19,7 @@
 #define PG_AGGREGATE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_aggregate_d.h"
+#include "catalog/pg_aggregate_d.h" /* IWYU pragma: export */
 
 #include "catalog/objectaddress.h"
 #include "nodes/pg_list.h"
diff --git a/src/include/catalog/pg_am.h b/src/include/catalog/pg_am.h
index 475593fad4c..5be4accff72 100644
--- a/src/include/catalog/pg_am.h
+++ b/src/include/catalog/pg_am.h
@@ -19,7 +19,7 @@
 #define PG_AM_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_am_d.h"
+#include "catalog/pg_am_d.h"   /* IWYU pragma: export */
 
 /* ----------------
  *             pg_am definition.  cpp turns this into
diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h
index 570100fad41..17a67d54896 100644
--- a/src/include/catalog/pg_amop.h
+++ b/src/include/catalog/pg_amop.h
@@ -44,7 +44,7 @@
 #define PG_AMOP_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_amop_d.h"
+#include "catalog/pg_amop_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_amop definition.  cpp turns this into
diff --git a/src/include/catalog/pg_amproc.h b/src/include/catalog/pg_amproc.h
index 1dbebeca175..04f05efc8e1 100644
--- a/src/include/catalog/pg_amproc.h
+++ b/src/include/catalog/pg_amproc.h
@@ -33,7 +33,7 @@
 #define PG_AMPROC_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_amproc_d.h"
+#include "catalog/pg_amproc_d.h"       /* IWYU pragma: export */
 
 /* ----------------
  *             pg_amproc definition.  cpp turns this into
diff --git a/src/include/catalog/pg_attrdef.h b/src/include/catalog/pg_attrdef.h
index 14f034a3b52..dd8544ae0bd 100644
--- a/src/include/catalog/pg_attrdef.h
+++ b/src/include/catalog/pg_attrdef.h
@@ -20,7 +20,7 @@
 
 #include "catalog/genbki.h"
 #include "catalog/objectaddress.h"
-#include "catalog/pg_attrdef_d.h"
+#include "catalog/pg_attrdef_d.h"      /* IWYU pragma: export */
 
 /* ----------------
  *             pg_attrdef definition.  cpp turns this into
diff --git a/src/include/catalog/pg_attribute.h 
b/src/include/catalog/pg_attribute.h
index 1c62b8bfcb5..20e54ae551b 100644
--- a/src/include/catalog/pg_attribute.h
+++ b/src/include/catalog/pg_attribute.h
@@ -23,7 +23,7 @@
 #define PG_ATTRIBUTE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_attribute_d.h"
+#include "catalog/pg_attribute_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_attribute definition.  cpp turns this into
diff --git a/src/include/catalog/pg_auth_members.h 
b/src/include/catalog/pg_auth_members.h
index 5f4b30756ca..d0c345780d1 100644
--- a/src/include/catalog/pg_auth_members.h
+++ b/src/include/catalog/pg_auth_members.h
@@ -20,7 +20,7 @@
 #define PG_AUTH_MEMBERS_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_auth_members_d.h"
+#include "catalog/pg_auth_members_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_auth_members definition.  cpp turns this into
diff --git a/src/include/catalog/pg_authid.h b/src/include/catalog/pg_authid.h
index b0dbdf2dd2e..8e77ae6daa8 100644
--- a/src/include/catalog/pg_authid.h
+++ b/src/include/catalog/pg_authid.h
@@ -21,7 +21,7 @@
 #define PG_AUTHID_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_authid_d.h"
+#include "catalog/pg_authid_d.h"       /* IWYU pragma: export */
 
 /* ----------------
  *             pg_authid definition.  cpp turns this into
diff --git a/src/include/catalog/pg_cast.h b/src/include/catalog/pg_cast.h
index 6c995509bc3..d7d72e04fb0 100644
--- a/src/include/catalog/pg_cast.h
+++ b/src/include/catalog/pg_cast.h
@@ -22,7 +22,7 @@
 
 #include "catalog/dependency.h"
 #include "catalog/genbki.h"
-#include "catalog/pg_cast_d.h"
+#include "catalog/pg_cast_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_cast definition.  cpp turns this into
diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h
index 0fc2c093b0d..bcb4b3e50a4 100644
--- a/src/include/catalog/pg_class.h
+++ b/src/include/catalog/pg_class.h
@@ -19,7 +19,7 @@
 #define PG_CLASS_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_class_d.h"
+#include "catalog/pg_class_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_class definition.  cpp turns this into
diff --git a/src/include/catalog/pg_collation.h 
b/src/include/catalog/pg_collation.h
index 5ce289d74bd..50cdeebfe83 100644
--- a/src/include/catalog/pg_collation.h
+++ b/src/include/catalog/pg_collation.h
@@ -19,7 +19,7 @@
 #define PG_COLLATION_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_collation_d.h"
+#include "catalog/pg_collation_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_collation definition.  cpp turns this into
diff --git a/src/include/catalog/pg_constraint.h 
b/src/include/catalog/pg_constraint.h
index 4b4476738a2..c5c60f644e4 100644
--- a/src/include/catalog/pg_constraint.h
+++ b/src/include/catalog/pg_constraint.h
@@ -20,7 +20,7 @@
 
 #include "catalog/dependency.h"
 #include "catalog/genbki.h"
-#include "catalog/pg_constraint_d.h"
+#include "catalog/pg_constraint_d.h"   /* IWYU pragma: export */
 #include "nodes/pg_list.h"
 
 /* ----------------
diff --git a/src/include/catalog/pg_conversion.h 
b/src/include/catalog/pg_conversion.h
index d94f0229672..db3c6b9f536 100644
--- a/src/include/catalog/pg_conversion.h
+++ b/src/include/catalog/pg_conversion.h
@@ -19,7 +19,7 @@
 
 #include "catalog/genbki.h"
 #include "catalog/objectaddress.h"
-#include "catalog/pg_conversion_d.h"
+#include "catalog/pg_conversion_d.h"   /* IWYU pragma: export */
 
 /* ----------------
  *             pg_conversion definition.  cpp turns this into
diff --git a/src/include/catalog/pg_database.h 
b/src/include/catalog/pg_database.h
index dbd4379ffa5..4454f92eea0 100644
--- a/src/include/catalog/pg_database.h
+++ b/src/include/catalog/pg_database.h
@@ -19,7 +19,7 @@
 #define PG_DATABASE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_database_d.h"
+#include "catalog/pg_database_d.h"     /* IWYU pragma: export */
 
 /* ----------------
  *             pg_database definition.  cpp turns this into
diff --git a/src/include/catalog/pg_db_role_setting.h 
b/src/include/catalog/pg_db_role_setting.h
index 7e1a652381f..45ebb009151 100644
--- a/src/include/catalog/pg_db_role_setting.h
+++ b/src/include/catalog/pg_db_role_setting.h
@@ -20,7 +20,7 @@
 #define PG_DB_ROLE_SETTING_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_db_role_setting_d.h"
+#include "catalog/pg_db_role_setting_d.h"      /* IWYU pragma: export */
 
 #include "utils/guc.h"
 #include "utils/relcache.h"
diff --git a/src/include/catalog/pg_default_acl.h 
b/src/include/catalog/pg_default_acl.h
index d272cdf08b4..f9aee902c34 100644
--- a/src/include/catalog/pg_default_acl.h
+++ b/src/include/catalog/pg_default_acl.h
@@ -20,7 +20,7 @@
 #define PG_DEFAULT_ACL_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_default_acl_d.h"
+#include "catalog/pg_default_acl_d.h"  /* IWYU pragma: export */
 
 /* ----------------
  *             pg_default_acl definition.  cpp turns this into
diff --git a/src/include/catalog/pg_depend.h b/src/include/catalog/pg_depend.h
index eb1ee43b012..8b5064831e0 100644
--- a/src/include/catalog/pg_depend.h
+++ b/src/include/catalog/pg_depend.h
@@ -32,7 +32,7 @@
 #define PG_DEPEND_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_depend_d.h"
+#include "catalog/pg_depend_d.h"       /* IWYU pragma: export */
 
 /* ----------------
  *             pg_depend definition.  cpp turns this into
diff --git a/src/include/catalog/pg_description.h 
b/src/include/catalog/pg_description.h
index e30a6976beb..c523a6d3b53 100644
--- a/src/include/catalog/pg_description.h
+++ b/src/include/catalog/pg_description.h
@@ -38,7 +38,7 @@
 #define PG_DESCRIPTION_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_description_d.h"
+#include "catalog/pg_description_d.h"  /* IWYU pragma: export */
 
 /* ----------------
  *             pg_description definition.  cpp turns this into
diff --git a/src/include/catalog/pg_enum.h b/src/include/catalog/pg_enum.h
index 4d9a241d348..d88cb2e4f98 100644
--- a/src/include/catalog/pg_enum.h
+++ b/src/include/catalog/pg_enum.h
@@ -19,7 +19,7 @@
 #define PG_ENUM_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_enum_d.h"
+#include "catalog/pg_enum_d.h" /* IWYU pragma: export */
 
 #include "nodes/pg_list.h"
 
diff --git a/src/include/catalog/pg_event_trigger.h 
b/src/include/catalog/pg_event_trigger.h
index 9170a4ddfe8..2909f9519a6 100644
--- a/src/include/catalog/pg_event_trigger.h
+++ b/src/include/catalog/pg_event_trigger.h
@@ -19,7 +19,7 @@
 #define PG_EVENT_TRIGGER_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_event_trigger_d.h"
+#include "catalog/pg_event_trigger_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_event_trigger definition.    cpp turns this into
diff --git a/src/include/catalog/pg_extension.h 
b/src/include/catalog/pg_extension.h
index 673181b39ae..f14452df59b 100644
--- a/src/include/catalog/pg_extension.h
+++ b/src/include/catalog/pg_extension.h
@@ -19,7 +19,7 @@
 #define PG_EXTENSION_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_extension_d.h"
+#include "catalog/pg_extension_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_extension definition.  cpp turns this into
diff --git a/src/include/catalog/pg_foreign_data_wrapper.h 
b/src/include/catalog/pg_foreign_data_wrapper.h
index 0d8759d3fd3..91fe201a4b2 100644
--- a/src/include/catalog/pg_foreign_data_wrapper.h
+++ b/src/include/catalog/pg_foreign_data_wrapper.h
@@ -19,7 +19,7 @@
 #define PG_FOREIGN_DATA_WRAPPER_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_foreign_data_wrapper_d.h"
+#include "catalog/pg_foreign_data_wrapper_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_foreign_data_wrapper definition.  cpp turns this into
diff --git a/src/include/catalog/pg_foreign_server.h 
b/src/include/catalog/pg_foreign_server.h
index a4b81936b09..fcffd8cfb98 100644
--- a/src/include/catalog/pg_foreign_server.h
+++ b/src/include/catalog/pg_foreign_server.h
@@ -18,7 +18,7 @@
 #define PG_FOREIGN_SERVER_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_foreign_server_d.h"
+#include "catalog/pg_foreign_server_d.h"       /* IWYU pragma: export */
 
 /* ----------------
  *             pg_foreign_server definition.  cpp turns this into
diff --git a/src/include/catalog/pg_foreign_table.h 
b/src/include/catalog/pg_foreign_table.h
index d17ff0e76e1..3b8f0fe2db2 100644
--- a/src/include/catalog/pg_foreign_table.h
+++ b/src/include/catalog/pg_foreign_table.h
@@ -18,7 +18,7 @@
 #define PG_FOREIGN_TABLE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_foreign_table_d.h"
+#include "catalog/pg_foreign_table_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_foreign_table definition.  cpp turns this into
diff --git a/src/include/catalog/pg_index.h b/src/include/catalog/pg_index.h
index 6c89639a9e4..73fb53b9f3e 100644
--- a/src/include/catalog/pg_index.h
+++ b/src/include/catalog/pg_index.h
@@ -19,7 +19,7 @@
 #define PG_INDEX_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_index_d.h"
+#include "catalog/pg_index_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_index definition.  cpp turns this into
diff --git a/src/include/catalog/pg_inherits.h 
b/src/include/catalog/pg_inherits.h
index b3da78c24bd..479ce03ea42 100644
--- a/src/include/catalog/pg_inherits.h
+++ b/src/include/catalog/pg_inherits.h
@@ -19,7 +19,7 @@
 #define PG_INHERITS_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_inherits_d.h"
+#include "catalog/pg_inherits_d.h"     /* IWYU pragma: export */
 
 #include "nodes/pg_list.h"
 #include "storage/lock.h"
diff --git a/src/include/catalog/pg_init_privs.h 
b/src/include/catalog/pg_init_privs.h
index ecd5d0812b7..85747d5a9ee 100644
--- a/src/include/catalog/pg_init_privs.h
+++ b/src/include/catalog/pg_init_privs.h
@@ -36,7 +36,7 @@
 #define PG_INIT_PRIVS_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_init_privs_d.h"
+#include "catalog/pg_init_privs_d.h"   /* IWYU pragma: export */
 
 /* ----------------
  *             pg_init_privs definition.  cpp turns this into
diff --git a/src/include/catalog/pg_language.h 
b/src/include/catalog/pg_language.h
index 7256908a95c..a9aebb41169 100644
--- a/src/include/catalog/pg_language.h
+++ b/src/include/catalog/pg_language.h
@@ -19,7 +19,7 @@
 #define PG_LANGUAGE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_language_d.h"
+#include "catalog/pg_language_d.h"     /* IWYU pragma: export */
 
 /* ----------------
  *             pg_language definition.  cpp turns this into
diff --git a/src/include/catalog/pg_largeobject.h 
b/src/include/catalog/pg_largeobject.h
index e684c58ca95..53509529242 100644
--- a/src/include/catalog/pg_largeobject.h
+++ b/src/include/catalog/pg_largeobject.h
@@ -19,7 +19,7 @@
 #define PG_LARGEOBJECT_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_largeobject_d.h"
+#include "catalog/pg_largeobject_d.h"  /* IWYU pragma: export */
 #include "utils/snapshot.h"
 
 /* ----------------
diff --git a/src/include/catalog/pg_largeobject_metadata.h 
b/src/include/catalog/pg_largeobject_metadata.h
index 8a827442187..9cae8089385 100644
--- a/src/include/catalog/pg_largeobject_metadata.h
+++ b/src/include/catalog/pg_largeobject_metadata.h
@@ -20,7 +20,7 @@
 #define PG_LARGEOBJECT_METADATA_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_largeobject_metadata_d.h"
+#include "catalog/pg_largeobject_metadata_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_largeobject_metadata definition. cpp turns this into
diff --git a/src/include/catalog/pg_namespace.h 
b/src/include/catalog/pg_namespace.h
index e101808ae1e..316a950f61d 100644
--- a/src/include/catalog/pg_namespace.h
+++ b/src/include/catalog/pg_namespace.h
@@ -19,7 +19,7 @@
 #define PG_NAMESPACE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_namespace_d.h"
+#include "catalog/pg_namespace_d.h" /* IWYU pragma: export */
 #include "utils/acl.h"
 
 /* ----------------------------------------------------------------
diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opclass.h
index 05867d08f93..c99b29a1bd8 100644
--- a/src/include/catalog/pg_opclass.h
+++ b/src/include/catalog/pg_opclass.h
@@ -39,7 +39,7 @@
 #define PG_OPCLASS_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_opclass_d.h"
+#include "catalog/pg_opclass_d.h"      /* IWYU pragma: export */
 
 /* ----------------
  *             pg_opclass definition.  cpp turns this into
diff --git a/src/include/catalog/pg_operator.h 
b/src/include/catalog/pg_operator.h
index 3ff1acc37ef..a77ee9e805d 100644
--- a/src/include/catalog/pg_operator.h
+++ b/src/include/catalog/pg_operator.h
@@ -20,7 +20,7 @@
 
 #include "catalog/genbki.h"
 #include "catalog/objectaddress.h"
-#include "catalog/pg_operator_d.h"
+#include "catalog/pg_operator_d.h"     /* IWYU pragma: export */
 #include "nodes/pg_list.h"
 
 /* ----------------
diff --git a/src/include/catalog/pg_opfamily.h 
b/src/include/catalog/pg_opfamily.h
index 52f9c4acf97..9ebb9c2efec 100644
--- a/src/include/catalog/pg_opfamily.h
+++ b/src/include/catalog/pg_opfamily.h
@@ -19,7 +19,7 @@
 #define PG_OPFAMILY_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_opfamily_d.h"
+#include "catalog/pg_opfamily_d.h"     /* IWYU pragma: export */
 
 /* ----------------
  *             pg_opfamily definition. cpp turns this into
diff --git a/src/include/catalog/pg_parameter_acl.h 
b/src/include/catalog/pg_parameter_acl.h
index 8f6b6f92b3e..4818e66fa9f 100644
--- a/src/include/catalog/pg_parameter_acl.h
+++ b/src/include/catalog/pg_parameter_acl.h
@@ -20,7 +20,7 @@
 #define PG_PARAMETER_ACL_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_parameter_acl_d.h"
+#include "catalog/pg_parameter_acl_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_parameter_acl definition.  cpp turns this into
diff --git a/src/include/catalog/pg_partitioned_table.h 
b/src/include/catalog/pg_partitioned_table.h
index daf57008b69..0654596b28f 100644
--- a/src/include/catalog/pg_partitioned_table.h
+++ b/src/include/catalog/pg_partitioned_table.h
@@ -20,7 +20,7 @@
 #define PG_PARTITIONED_TABLE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_partitioned_table_d.h"
+#include "catalog/pg_partitioned_table_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_partitioned_table definition.  cpp turns this into
diff --git a/src/include/catalog/pg_policy.h b/src/include/catalog/pg_policy.h
index 05d6398f7b8..3ed94f3cea5 100644
--- a/src/include/catalog/pg_policy.h
+++ b/src/include/catalog/pg_policy.h
@@ -19,7 +19,7 @@
 #define PG_POLICY_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_policy_d.h"
+#include "catalog/pg_policy_d.h"       /* IWYU pragma: export */
 
 /* ----------------
  *             pg_policy definition. cpp turns this into
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index 51f43092415..23cb114700e 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -19,7 +19,7 @@
 
 #include "catalog/genbki.h"
 #include "catalog/objectaddress.h"
-#include "catalog/pg_proc_d.h"
+#include "catalog/pg_proc_d.h" /* IWYU pragma: export */
 #include "nodes/pg_list.h"
 
 /* ----------------
diff --git a/src/include/catalog/pg_publication.h 
b/src/include/catalog/pg_publication.h
index e2d894a2ff5..709c8c18ae6 100644
--- a/src/include/catalog/pg_publication.h
+++ b/src/include/catalog/pg_publication.h
@@ -19,7 +19,7 @@
 
 #include "catalog/genbki.h"
 #include "catalog/objectaddress.h"
-#include "catalog/pg_publication_d.h"
+#include "catalog/pg_publication_d.h"  /* IWYU pragma: export */
 
 /* ----------------
  *             pg_publication definition.  cpp turns this into
diff --git a/src/include/catalog/pg_publication_namespace.h 
b/src/include/catalog/pg_publication_namespace.h
index 1cfb557684f..0b1ba009688 100644
--- a/src/include/catalog/pg_publication_namespace.h
+++ b/src/include/catalog/pg_publication_namespace.h
@@ -19,7 +19,7 @@
 #define PG_PUBLICATION_NAMESPACE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_publication_namespace_d.h"
+#include "catalog/pg_publication_namespace_d.h" /* IWYU pragma: export */
 
 
 /* ----------------
diff --git a/src/include/catalog/pg_publication_rel.h 
b/src/include/catalog/pg_publication_rel.h
index 25fa630675a..443ce637656 100644
--- a/src/include/catalog/pg_publication_rel.h
+++ b/src/include/catalog/pg_publication_rel.h
@@ -19,7 +19,7 @@
 #define PG_PUBLICATION_REL_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_publication_rel_d.h"
+#include "catalog/pg_publication_rel_d.h"      /* IWYU pragma: export */
 
 /* ----------------
  *             pg_publication_rel definition.  cpp turns this into
diff --git a/src/include/catalog/pg_range.h b/src/include/catalog/pg_range.h
index 0bd3ab688bd..5f8c1a0621f 100644
--- a/src/include/catalog/pg_range.h
+++ b/src/include/catalog/pg_range.h
@@ -19,7 +19,7 @@
 #define PG_RANGE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_range_d.h"
+#include "catalog/pg_range_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_range definition.  cpp turns this into
diff --git a/src/include/catalog/pg_replication_origin.h 
b/src/include/catalog/pg_replication_origin.h
index e9bc0209c26..ed0051d7f0b 100644
--- a/src/include/catalog/pg_replication_origin.h
+++ b/src/include/catalog/pg_replication_origin.h
@@ -20,7 +20,7 @@
 
 #include "access/xlogdefs.h"
 #include "catalog/genbki.h"
-#include "catalog/pg_replication_origin_d.h"
+#include "catalog/pg_replication_origin_d.h"   /* IWYU pragma: export */
 
 /* ----------------
  *             pg_replication_origin.  cpp turns this into
diff --git a/src/include/catalog/pg_rewrite.h b/src/include/catalog/pg_rewrite.h
index e42ff73d29c..cb1cafc1851 100644
--- a/src/include/catalog/pg_rewrite.h
+++ b/src/include/catalog/pg_rewrite.h
@@ -22,7 +22,7 @@
 #define PG_REWRITE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_rewrite_d.h"
+#include "catalog/pg_rewrite_d.h"      /* IWYU pragma: export */
 
 /* ----------------
  *             pg_rewrite definition.  cpp turns this into
diff --git a/src/include/catalog/pg_seclabel.h 
b/src/include/catalog/pg_seclabel.h
index 5f6f5c9c059..0bde07fc1ac 100644
--- a/src/include/catalog/pg_seclabel.h
+++ b/src/include/catalog/pg_seclabel.h
@@ -18,7 +18,7 @@
 #define PG_SECLABEL_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_seclabel_d.h"
+#include "catalog/pg_seclabel_d.h"     /* IWYU pragma: export */
 
 /* ----------------
  *             pg_seclabel definition.  cpp turns this into
diff --git a/src/include/catalog/pg_sequence.h 
b/src/include/catalog/pg_sequence.h
index 8c3f0dd1ab8..aa1aed07cf4 100644
--- a/src/include/catalog/pg_sequence.h
+++ b/src/include/catalog/pg_sequence.h
@@ -18,7 +18,7 @@
 #define PG_SEQUENCE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_sequence_d.h"
+#include "catalog/pg_sequence_d.h"     /* IWYU pragma: export */
 
 CATALOG(pg_sequence,2224,SequenceRelationId)
 {
diff --git a/src/include/catalog/pg_shdepend.h 
b/src/include/catalog/pg_shdepend.h
index 7bd48ab97cb..e310cb46774 100644
--- a/src/include/catalog/pg_shdepend.h
+++ b/src/include/catalog/pg_shdepend.h
@@ -28,7 +28,7 @@
 #define PG_SHDEPEND_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_shdepend_d.h"
+#include "catalog/pg_shdepend_d.h"     /* IWYU pragma: export */
 
 /* ----------------
  *             pg_shdepend definition.  cpp turns this into
diff --git a/src/include/catalog/pg_shdescription.h 
b/src/include/catalog/pg_shdescription.h
index c9433d229ef..7666d08c1c3 100644
--- a/src/include/catalog/pg_shdescription.h
+++ b/src/include/catalog/pg_shdescription.h
@@ -31,7 +31,7 @@
 #define PG_SHDESCRIPTION_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_shdescription_d.h"
+#include "catalog/pg_shdescription_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_shdescription definition.    cpp turns this into
diff --git a/src/include/catalog/pg_shseclabel.h 
b/src/include/catalog/pg_shseclabel.h
index 478d46969c0..68c6456e88c 100644
--- a/src/include/catalog/pg_shseclabel.h
+++ b/src/include/catalog/pg_shseclabel.h
@@ -18,7 +18,7 @@
 #define PG_SHSECLABEL_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_shseclabel_d.h"
+#include "catalog/pg_shseclabel_d.h"   /* IWYU pragma: export */
 
 /* ----------------
  *             pg_shseclabel definition. cpp turns this into
diff --git a/src/include/catalog/pg_statistic.h 
b/src/include/catalog/pg_statistic.h
index 041e626390a..2222f96b77b 100644
--- a/src/include/catalog/pg_statistic.h
+++ b/src/include/catalog/pg_statistic.h
@@ -19,7 +19,7 @@
 #define PG_STATISTIC_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_statistic_d.h"
+#include "catalog/pg_statistic_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_statistic definition.  cpp turns this into
diff --git a/src/include/catalog/pg_statistic_ext.h 
b/src/include/catalog/pg_statistic_ext.h
index 50a5c021edf..e15372c728a 100644
--- a/src/include/catalog/pg_statistic_ext.h
+++ b/src/include/catalog/pg_statistic_ext.h
@@ -23,7 +23,7 @@
 #define PG_STATISTIC_EXT_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_statistic_ext_d.h"
+#include "catalog/pg_statistic_ext_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_statistic_ext definition.  cpp turns this into
diff --git a/src/include/catalog/pg_statistic_ext_data.h 
b/src/include/catalog/pg_statistic_ext_data.h
index 18b00ce8b52..67914123292 100644
--- a/src/include/catalog/pg_statistic_ext_data.h
+++ b/src/include/catalog/pg_statistic_ext_data.h
@@ -21,7 +21,7 @@
 #define PG_STATISTIC_EXT_DATA_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_statistic_ext_data_d.h"
+#include "catalog/pg_statistic_ext_data_d.h"   /* IWYU pragma: export */
 
 /* ----------------
  *             pg_statistic_ext_data definition.  cpp turns this into
diff --git a/src/include/catalog/pg_subscription.h 
b/src/include/catalog/pg_subscription.h
index beaff6578a6..86bcfcf43fc 100644
--- a/src/include/catalog/pg_subscription.h
+++ b/src/include/catalog/pg_subscription.h
@@ -19,7 +19,7 @@
 
 #include "access/xlogdefs.h"
 #include "catalog/genbki.h"
-#include "catalog/pg_subscription_d.h"
+#include "catalog/pg_subscription_d.h" /* IWYU pragma: export */
 #include "lib/stringinfo.h"
 #include "nodes/pg_list.h"
 
diff --git a/src/include/catalog/pg_subscription_rel.h 
b/src/include/catalog/pg_subscription_rel.h
index 8244ad537ae..6290f5f440d 100644
--- a/src/include/catalog/pg_subscription_rel.h
+++ b/src/include/catalog/pg_subscription_rel.h
@@ -20,7 +20,7 @@
 
 #include "access/xlogdefs.h"
 #include "catalog/genbki.h"
-#include "catalog/pg_subscription_rel_d.h"
+#include "catalog/pg_subscription_rel_d.h"     /* IWYU pragma: export */
 #include "nodes/pg_list.h"
 
 /* ----------------
diff --git a/src/include/catalog/pg_tablespace.h 
b/src/include/catalog/pg_tablespace.h
index 6b9bdcf8b05..fc624132f10 100644
--- a/src/include/catalog/pg_tablespace.h
+++ b/src/include/catalog/pg_tablespace.h
@@ -19,7 +19,7 @@
 #define PG_TABLESPACE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_tablespace_d.h"
+#include "catalog/pg_tablespace_d.h"   /* IWYU pragma: export */
 
 /* ----------------
  *             pg_tablespace definition.  cpp turns this into
diff --git a/src/include/catalog/pg_transform.h 
b/src/include/catalog/pg_transform.h
index 3b69960af60..e85a0beb7a3 100644
--- a/src/include/catalog/pg_transform.h
+++ b/src/include/catalog/pg_transform.h
@@ -19,7 +19,7 @@
 #define PG_TRANSFORM_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_transform_d.h"
+#include "catalog/pg_transform_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_transform definition.  cpp turns this into
diff --git a/src/include/catalog/pg_trigger.h b/src/include/catalog/pg_trigger.h
index 7fdff161184..418f0d44df4 100644
--- a/src/include/catalog/pg_trigger.h
+++ b/src/include/catalog/pg_trigger.h
@@ -19,7 +19,7 @@
 #define PG_TRIGGER_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_trigger_d.h"
+#include "catalog/pg_trigger_d.h"      /* IWYU pragma: export */
 
 /* ----------------
  *             pg_trigger definition.  cpp turns this into
diff --git a/src/include/catalog/pg_ts_config.h 
b/src/include/catalog/pg_ts_config.h
index fc0bf447b1d..6983f976764 100644
--- a/src/include/catalog/pg_ts_config.h
+++ b/src/include/catalog/pg_ts_config.h
@@ -20,7 +20,7 @@
 #define PG_TS_CONFIG_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_ts_config_d.h"
+#include "catalog/pg_ts_config_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_ts_config definition.  cpp turns this into
diff --git a/src/include/catalog/pg_ts_dict.h b/src/include/catalog/pg_ts_dict.h
index 1320468de0e..88dee457d21 100644
--- a/src/include/catalog/pg_ts_dict.h
+++ b/src/include/catalog/pg_ts_dict.h
@@ -19,7 +19,7 @@
 #define PG_TS_DICT_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_ts_dict_d.h"
+#include "catalog/pg_ts_dict_d.h"      /* IWYU pragma: export */
 
 /* ----------------
  *             pg_ts_dict definition.  cpp turns this into
diff --git a/src/include/catalog/pg_ts_parser.h 
b/src/include/catalog/pg_ts_parser.h
index 909644c96f2..9a9e2bff7bd 100644
--- a/src/include/catalog/pg_ts_parser.h
+++ b/src/include/catalog/pg_ts_parser.h
@@ -19,7 +19,7 @@
 #define PG_TS_PARSER_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_ts_parser_d.h"
+#include "catalog/pg_ts_parser_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_ts_parser definition.  cpp turns this into
diff --git a/src/include/catalog/pg_ts_template.h 
b/src/include/catalog/pg_ts_template.h
index 0562a4a7583..9f155de7c94 100644
--- a/src/include/catalog/pg_ts_template.h
+++ b/src/include/catalog/pg_ts_template.h
@@ -19,7 +19,7 @@
 #define PG_TS_TEMPLATE_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_ts_template_d.h"
+#include "catalog/pg_ts_template_d.h"  /* IWYU pragma: export */
 
 /* ----------------
  *             pg_ts_template definition.  cpp turns this into
diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h
index e9259697321..c33c03873d4 100644
--- a/src/include/catalog/pg_type.h
+++ b/src/include/catalog/pg_type.h
@@ -20,7 +20,7 @@
 
 #include "catalog/genbki.h"
 #include "catalog/objectaddress.h"
-#include "catalog/pg_type_d.h"
+#include "catalog/pg_type_d.h" /* IWYU pragma: export */
 #include "nodes/nodes.h"
 
 /* ----------------
diff --git a/src/include/catalog/pg_user_mapping.h 
b/src/include/catalog/pg_user_mapping.h
index 3632448cce0..21c5c1c201e 100644
--- a/src/include/catalog/pg_user_mapping.h
+++ b/src/include/catalog/pg_user_mapping.h
@@ -18,7 +18,7 @@
 #define PG_USER_MAPPING_H
 
 #include "catalog/genbki.h"
-#include "catalog/pg_user_mapping_d.h"
+#include "catalog/pg_user_mapping_d.h" /* IWYU pragma: export */
 
 /* ----------------
  *             pg_user_mapping definition.  cpp turns this into
-- 
2.47.1

Reply via email to