Remove extra includes of "access/xloginsert.h" when "access/xlog.h" is included

Started by Bharath Rupireddyalmost 4 years ago7 messages
#1Bharath Rupireddy
bharath.rupireddyforpostgres@gmail.com
1 attachment(s)

Hi,

It seems like there are some instances where xloginsert.h is included
right after xlog.h but xlog.h has already included xloginsert.h.
Unless I'm missing something badly, we can safely remove including
xloginsert.h after xlog.h. Attempting to post a patch to remove the
extra xloginsert.h includes.

Thoughts?

Regards,
Bharath Rupireddy.

Attachments:

v1-0001-remove-extra-includes-of-xloginsert.h-when-xlog.h.patchapplication/octet-stream; name=v1-0001-remove-extra-includes-of-xloginsert.h-when-xlog.h.patchDownload
From 0218c274cf562389fb9202adb9ee12a5099e8e11 Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Fri, 28 Jan 2022 13:44:21 +0000
Subject: [PATCH v1] remove extra includes of xloginsert.h when xlog.h is
 included

---
 src/backend/access/gin/ginfast.c      | 1 -
 src/backend/access/heap/heapam.c      | 1 -
 src/backend/access/nbtree/nbtpage.c   | 1 -
 src/backend/access/nbtree/nbtsort.c   | 1 -
 src/backend/access/spgist/spginsert.c | 1 -
 src/backend/access/transam/clog.c     | 1 -
 src/backend/access/transam/twophase.c | 1 -
 src/backend/access/transam/xact.c     | 1 -
 src/backend/catalog/storage.c         | 1 -
 src/backend/commands/sequence.c       | 1 -
 src/backend/utils/cache/relmapper.c   | 1 -
 11 files changed, 11 deletions(-)

diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c
index 7409fdc165..6f07b7b7d3 100644
--- a/src/backend/access/gin/ginfast.c
+++ b/src/backend/access/gin/ginfast.c
@@ -21,7 +21,6 @@
 #include "access/gin_private.h"
 #include "access/ginxlog.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "catalog/pg_am.h"
 #include "commands/vacuum.h"
 #include "miscadmin.h"
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 98230aac49..b602627100 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -49,7 +49,6 @@
 #include "access/visibilitymap.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/catalog.h"
 #include "miscadmin.h"
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index 6b5f01e1d0..9048c9509e 100644
--- a/src/backend/access/nbtree/nbtpage.c
+++ b/src/backend/access/nbtree/nbtpage.c
@@ -27,7 +27,6 @@
 #include "access/tableam.h"
 #include "access/transam.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "miscadmin.h"
 #include "storage/indexfsm.h"
 #include "storage/lmgr.h"
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index dc220146fd..9ee28db14d 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -51,7 +51,6 @@
 #include "access/table.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "catalog/index.h"
 #include "commands/progress.h"
 #include "executor/instrument.h"
diff --git a/src/backend/access/spgist/spginsert.c b/src/backend/access/spgist/spginsert.c
index bfb74049d0..e5e311c3f6 100644
--- a/src/backend/access/spgist/spginsert.c
+++ b/src/backend/access/spgist/spginsert.c
@@ -21,7 +21,6 @@
 #include "access/spgxlog.h"
 #include "access/tableam.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "catalog/index.h"
 #include "miscadmin.h"
 #include "storage/bufmgr.h"
diff --git a/src/backend/access/transam/clog.c b/src/backend/access/transam/clog.c
index de787c3d37..9fc2cbd6ba 100644
--- a/src/backend/access/transam/clog.c
+++ b/src/backend/access/transam/clog.c
@@ -36,7 +36,6 @@
 #include "access/slru.h"
 #include "access/transam.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "miscadmin.h"
 #include "pg_trace.h"
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
index 271a3146db..2b2eb1b94e 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -84,7 +84,6 @@
 #include "access/twophase_rmgr.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogreader.h"
 #include "access/xlogutils.h"
 #include "catalog/pg_type.h"
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index c9516e03fa..7a0d5da2cc 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -28,7 +28,6 @@
 #include "access/twophase.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/index.h"
 #include "catalog/namespace.h"
diff --git a/src/backend/catalog/storage.c b/src/backend/catalog/storage.c
index 9b8075536a..1fc30e9584 100644
--- a/src/backend/catalog/storage.c
+++ b/src/backend/catalog/storage.c
@@ -23,7 +23,6 @@
 #include "access/visibilitymap.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/storage.h"
 #include "catalog/storage_xlog.h"
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 27cb630758..24fa7fc9b9 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -22,7 +22,6 @@
 #include "access/transam.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
diff --git a/src/backend/utils/cache/relmapper.c b/src/backend/utils/cache/relmapper.c
index 4f6811f571..c173380257 100644
--- a/src/backend/utils/cache/relmapper.c
+++ b/src/backend/utils/cache/relmapper.c
@@ -45,7 +45,6 @@
 
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "catalog/catalog.h"
 #include "catalog/pg_tablespace.h"
 #include "catalog/storage.h"
-- 
2.25.1

#2Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Bharath Rupireddy (#1)
Re: Remove extra includes of "access/xloginsert.h" when "access/xlog.h" is included

On 2022-Jan-28, Bharath Rupireddy wrote:

Hi,

It seems like there are some instances where xloginsert.h is included
right after xlog.h but xlog.h has already included xloginsert.h.
Unless I'm missing something badly, we can safely remove including
xloginsert.h after xlog.h. Attempting to post a patch to remove the
extra xloginsert.h includes.

Why isn't it better to remove the line that includes xloginsert.h in
xlog.h instead? When xloginsert.h was introduced (commit 2076db2aea76),
XLogRecData was put there so xloginsert.h was necessary for xlog.h; but
now we have a forward declaration (per commit 2c03216d8311) so it
doesn't seem needed anymore.

--
Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/

#3Bharath Rupireddy
bharath.rupireddyforpostgres@gmail.com
In reply to: Alvaro Herrera (#2)
1 attachment(s)
Re: Remove extra includes of "access/xloginsert.h" when "access/xlog.h" is included

On Fri, Jan 28, 2022 at 9:25 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

On 2022-Jan-28, Bharath Rupireddy wrote:

Hi,

It seems like there are some instances where xloginsert.h is included
right after xlog.h but xlog.h has already included xloginsert.h.
Unless I'm missing something badly, we can safely remove including
xloginsert.h after xlog.h. Attempting to post a patch to remove the
extra xloginsert.h includes.

Why isn't it better to remove the line that includes xloginsert.h in
xlog.h instead? When xloginsert.h was introduced (commit 2076db2aea76),
XLogRecData was put there so xloginsert.h was necessary for xlog.h; but
now we have a forward declaration (per commit 2c03216d8311) so it
doesn't seem needed anymore.

Removing the xloginsert.h in xlog.h would need us to add xloginsert.h
in more areas. And also, it might break any non-core extensions that
includes just xlog.h and gets xloginsert.h. Instead I prefer removing
xloginsert.h if there's xlog.h included.

Attaching v2 patch removing xloginsert.h in a few more places.

Regards,
Bharath Rupireddy.

Attachments:

v2-0001-remove-extra-includes-of-xloginsert.h-when-xlog.h.patchapplication/x-patch; name=v2-0001-remove-extra-includes-of-xloginsert.h-when-xlog.h.patchDownload
From 00e6b9a3b24811c63568a176dc871e89f1356d03 Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Sat, 29 Jan 2022 13:19:21 +0000
Subject: [PATCH v2] remove extra includes of xloginsert.h when xlog.h is
 included

---
 src/backend/access/gin/ginfast.c        | 1 -
 src/backend/access/heap/heapam.c        | 1 -
 src/backend/access/nbtree/nbtpage.c     | 1 -
 src/backend/access/nbtree/nbtsort.c     | 1 -
 src/backend/access/spgist/spginsert.c   | 1 -
 src/backend/access/transam/clog.c       | 1 -
 src/backend/access/transam/twophase.c   | 1 -
 src/backend/access/transam/xact.c       | 1 -
 src/backend/access/transam/xloginsert.c | 1 -
 src/backend/catalog/storage.c           | 1 -
 src/backend/commands/sequence.c         | 1 -
 src/backend/utils/cache/relmapper.c     | 1 -
 src/include/access/generic_xlog.h       | 1 -
 13 files changed, 13 deletions(-)

diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c
index 7409fdc165..6f07b7b7d3 100644
--- a/src/backend/access/gin/ginfast.c
+++ b/src/backend/access/gin/ginfast.c
@@ -21,7 +21,6 @@
 #include "access/gin_private.h"
 #include "access/ginxlog.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "catalog/pg_am.h"
 #include "commands/vacuum.h"
 #include "miscadmin.h"
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 98230aac49..b602627100 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -49,7 +49,6 @@
 #include "access/visibilitymap.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/catalog.h"
 #include "miscadmin.h"
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index 6b5f01e1d0..9048c9509e 100644
--- a/src/backend/access/nbtree/nbtpage.c
+++ b/src/backend/access/nbtree/nbtpage.c
@@ -27,7 +27,6 @@
 #include "access/tableam.h"
 #include "access/transam.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "miscadmin.h"
 #include "storage/indexfsm.h"
 #include "storage/lmgr.h"
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index dc220146fd..9ee28db14d 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -51,7 +51,6 @@
 #include "access/table.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "catalog/index.h"
 #include "commands/progress.h"
 #include "executor/instrument.h"
diff --git a/src/backend/access/spgist/spginsert.c b/src/backend/access/spgist/spginsert.c
index bfb74049d0..e5e311c3f6 100644
--- a/src/backend/access/spgist/spginsert.c
+++ b/src/backend/access/spgist/spginsert.c
@@ -21,7 +21,6 @@
 #include "access/spgxlog.h"
 #include "access/tableam.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "catalog/index.h"
 #include "miscadmin.h"
 #include "storage/bufmgr.h"
diff --git a/src/backend/access/transam/clog.c b/src/backend/access/transam/clog.c
index de787c3d37..9fc2cbd6ba 100644
--- a/src/backend/access/transam/clog.c
+++ b/src/backend/access/transam/clog.c
@@ -36,7 +36,6 @@
 #include "access/slru.h"
 #include "access/transam.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "miscadmin.h"
 #include "pg_trace.h"
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
index 271a3146db..2b2eb1b94e 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -84,7 +84,6 @@
 #include "access/twophase_rmgr.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogreader.h"
 #include "access/xlogutils.h"
 #include "catalog/pg_type.h"
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index c9516e03fa..7a0d5da2cc 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -28,7 +28,6 @@
 #include "access/twophase.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/index.h"
 #include "catalog/namespace.h"
diff --git a/src/backend/access/transam/xloginsert.c b/src/backend/access/transam/xloginsert.c
index c260310c4c..0afb0716d3 100644
--- a/src/backend/access/transam/xloginsert.c
+++ b/src/backend/access/transam/xloginsert.c
@@ -22,7 +22,6 @@
 #include "access/xact.h"
 #include "access/xlog.h"
 #include "access/xlog_internal.h"
-#include "access/xloginsert.h"
 #include "catalog/pg_control.h"
 #include "common/pg_lzcompress.h"
 #include "executor/instrument.h"
diff --git a/src/backend/catalog/storage.c b/src/backend/catalog/storage.c
index 9b8075536a..1fc30e9584 100644
--- a/src/backend/catalog/storage.c
+++ b/src/backend/catalog/storage.c
@@ -23,7 +23,6 @@
 #include "access/visibilitymap.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/storage.h"
 #include "catalog/storage_xlog.h"
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 27cb630758..24fa7fc9b9 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -22,7 +22,6 @@
 #include "access/transam.h"
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
diff --git a/src/backend/utils/cache/relmapper.c b/src/backend/utils/cache/relmapper.c
index 4f6811f571..c173380257 100644
--- a/src/backend/utils/cache/relmapper.c
+++ b/src/backend/utils/cache/relmapper.c
@@ -45,7 +45,6 @@
 
 #include "access/xact.h"
 #include "access/xlog.h"
-#include "access/xloginsert.h"
 #include "catalog/catalog.h"
 #include "catalog/pg_tablespace.h"
 #include "catalog/storage.h"
diff --git a/src/include/access/generic_xlog.h b/src/include/access/generic_xlog.h
index c8363a4766..265d82742a 100644
--- a/src/include/access/generic_xlog.h
+++ b/src/include/access/generic_xlog.h
@@ -16,7 +16,6 @@
 
 #include "access/xlog.h"
 #include "access/xlog_internal.h"
-#include "access/xloginsert.h"
 #include "storage/bufpage.h"
 #include "utils/rel.h"
 
-- 
2.25.1

#4Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Bharath Rupireddy (#3)
Re: Remove extra includes of "access/xloginsert.h" when "access/xlog.h" is included

On 2022-Jan-29, Bharath Rupireddy wrote:

Removing the xloginsert.h in xlog.h would need us to add xloginsert.h
in more areas.

Sure.

And also, it might break any non-core extensions that
includes just xlog.h and gets xloginsert.h.

That's a pretty easy fix anyway -- it's not even version-specific, since
the fix would work with the older versions. It's not something that
would break on a minor version, either.

--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"The problem with the facetime model is not just that it's demoralizing, but
that the people pretending to work interrupt the ones actually working."
(Paul Graham)

#5Bharath Rupireddy
bharath.rupireddyforpostgres@gmail.com
In reply to: Alvaro Herrera (#4)
1 attachment(s)
Re: Remove extra includes of "access/xloginsert.h" when "access/xlog.h" is included

On Sun, Jan 30, 2022 at 1:07 AM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

On 2022-Jan-29, Bharath Rupireddy wrote:

Removing the xloginsert.h in xlog.h would need us to add xloginsert.h
in more areas.

Sure.

And also, it might break any non-core extensions that
includes just xlog.h and gets xloginsert.h.

That's a pretty easy fix anyway -- it's not even version-specific, since
the fix would work with the older versions. It's not something that
would break on a minor version, either.

Here's the v3 patch removing xloginsert.h from xlog.h and adding
xloginsert.h in the required files.

Regards,
Bharath Rupireddy.

Attachments:

v3-0001-remove-xloginsert.h-from-xlog.h.patchapplication/x-patch; name=v3-0001-remove-xloginsert.h-from-xlog.h.patchDownload
From f09891ded020517539db0f691923538608d220ab Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Sun, 30 Jan 2022 12:59:21 +0000
Subject: [PATCH v3] remove xloginsert.h from xlog.h

---
 src/backend/access/hash/hash.c           | 1 +
 src/backend/access/hash/hashinsert.c     | 1 +
 src/backend/access/hash/hashovfl.c       | 1 +
 src/backend/access/hash/hashpage.c       | 1 +
 src/backend/access/heap/pruneheap.c      | 1 +
 src/backend/access/heap/vacuumlazy.c     | 1 +
 src/backend/access/nbtree/nbtdedup.c     | 1 +
 src/backend/access/transam/commit_ts.c   | 1 +
 src/backend/commands/tablecmds.c         | 1 +
 src/backend/replication/logical/origin.c | 1 +
 src/backend/storage/buffer/bufmgr.c      | 1 +
 src/include/access/xlog.h                | 1 -
 12 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c
index d48c8a4549..a259a301fa 100644
--- a/src/backend/access/hash/hash.c
+++ b/src/backend/access/hash/hash.c
@@ -22,6 +22,7 @@
 #include "access/hash_xlog.h"
 #include "access/relscan.h"
 #include "access/tableam.h"
+#include "access/xloginsert.h"
 #include "catalog/index.h"
 #include "commands/progress.h"
 #include "commands/vacuum.h"
diff --git a/src/backend/access/hash/hashinsert.c b/src/backend/access/hash/hashinsert.c
index 2dfa0ec35e..faf609c157 100644
--- a/src/backend/access/hash/hashinsert.c
+++ b/src/backend/access/hash/hashinsert.c
@@ -17,6 +17,7 @@
 
 #include "access/hash.h"
 #include "access/hash_xlog.h"
+#include "access/xloginsert.h"
 #include "miscadmin.h"
 #include "storage/buf_internals.h"
 #include "storage/lwlock.h"
diff --git a/src/backend/access/hash/hashovfl.c b/src/backend/access/hash/hashovfl.c
index c9449b74d8..4836875196 100644
--- a/src/backend/access/hash/hashovfl.c
+++ b/src/backend/access/hash/hashovfl.c
@@ -19,6 +19,7 @@
 
 #include "access/hash.h"
 #include "access/hash_xlog.h"
+#include "access/xloginsert.h"
 #include "miscadmin.h"
 #include "utils/rel.h"
 
diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c
index ee351aea09..28c5297a1d 100644
--- a/src/backend/access/hash/hashpage.c
+++ b/src/backend/access/hash/hashpage.c
@@ -30,6 +30,7 @@
 
 #include "access/hash.h"
 #include "access/hash_xlog.h"
+#include "access/xloginsert.h"
 #include "miscadmin.h"
 #include "port/pg_bitutils.h"
 #include "storage/lmgr.h"
diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c
index b3e2eec52f..b6500763a5 100644
--- a/src/backend/access/heap/pruneheap.c
+++ b/src/backend/access/heap/pruneheap.c
@@ -19,6 +19,7 @@
 #include "access/htup_details.h"
 #include "access/transam.h"
 #include "access/xlog.h"
+#include "access/xloginsert.h"
 #include "catalog/catalog.h"
 #include "miscadmin.h"
 #include "pgstat.h"
diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
index 1c2f30b686..f09ad8f271 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -44,6 +44,7 @@
 #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"
diff --git a/src/backend/access/nbtree/nbtdedup.c b/src/backend/access/nbtree/nbtdedup.c
index 1547e73049..4c48554aec 100644
--- a/src/backend/access/nbtree/nbtdedup.c
+++ b/src/backend/access/nbtree/nbtdedup.c
@@ -16,6 +16,7 @@
 
 #include "access/nbtree.h"
 #include "access/nbtxlog.h"
+#include "access/xloginsert.h"
 #include "miscadmin.h"
 #include "utils/rel.h"
 
diff --git a/src/backend/access/transam/commit_ts.c b/src/backend/access/transam/commit_ts.c
index 9419a5ca41..20950eb1e4 100644
--- a/src/backend/access/transam/commit_ts.c
+++ b/src/backend/access/transam/commit_ts.c
@@ -28,6 +28,7 @@
 #include "access/htup_details.h"
 #include "access/slru.h"
 #include "access/transam.h"
+#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/pg_type.h"
 #include "funcapi.h"
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 1f0654c2f5..3e83f375b5 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -26,6 +26,7 @@
 #include "access/toast_compression.h"
 #include "access/xact.h"
 #include "access/xlog.h"
+#include "access/xloginsert.h"
 #include "catalog/catalog.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c
index eb040152f9..e91fa93d03 100644
--- a/src/backend/replication/logical/origin.c
+++ b/src/backend/replication/logical/origin.c
@@ -74,6 +74,7 @@
 #include "access/htup_details.h"
 #include "access/table.h"
 #include "access/xact.h"
+#include "access/xloginsert.h"
 #include "catalog/catalog.h"
 #include "catalog/indexing.h"
 #include "funcapi.h"
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index a2512e750c..f5459c68f8 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -34,6 +34,7 @@
 #include <unistd.h>
 
 #include "access/tableam.h"
+#include "access/xloginsert.h"
 #include "access/xlogutils.h"
 #include "catalog/catalog.h"
 #include "catalog/storage.h"
diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h
index bb0c52686a..5f934dd65a 100644
--- a/src/include/access/xlog.h
+++ b/src/include/access/xlog.h
@@ -13,7 +13,6 @@
 
 #include "access/rmgr.h"
 #include "access/xlogdefs.h"
-#include "access/xloginsert.h"
 #include "access/xlogreader.h"
 #include "datatype/timestamp.h"
 #include "lib/stringinfo.h"
-- 
2.25.1

#6Julien Rouhaud
rjuju123@gmail.com
In reply to: Bharath Rupireddy (#5)
Re: Remove extra includes of "access/xloginsert.h" when "access/xlog.h" is included

Hi,

On Sun, Jan 30, 2022 at 06:52:48PM +0530, Bharath Rupireddy wrote:

Here's the v3 patch removing xloginsert.h from xlog.h and adding
xloginsert.h in the required files.

+1, this approach is better. In general it's better to increase the number of
include lines rather than having a few that includes everything, for
compilation performance.

#7Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Bharath Rupireddy (#5)
Re: Remove extra includes of "access/xloginsert.h" when "access/xlog.h" is included

On 2022-Jan-30, Bharath Rupireddy wrote:

Here's the v3 patch removing xloginsert.h from xlog.h and adding
xloginsert.h in the required files.

Pushed, but I added xloginsert.h to 9 additional files that needed it to
avoid compiler warnings. Thanks!

--
Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/