Split macros from visibilitymap.h into a separate header
authorAlexander Korotkov <akorotkov@postgresql.org>
Thu, 23 Sep 2021 16:59:03 +0000 (19:59 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Thu, 23 Sep 2021 16:59:03 +0000 (19:59 +0300)
That allows to include just visibilitymapdefs.h from file.c, and in turn,
remove include of postgres.h from relcache.h.

Reported-by: Andres Freund
Discussion: https://postgr.es/m/20210913232614.czafiubr435l6egi%40alap3.anarazel.de
Author: Alexander Korotkov
Reviewed-by: Andres Freund, Tom Lane, Alvaro Herrera
Backpatch-through: 13

src/bin/pg_upgrade/file.c
src/include/access/visibilitymap.h
src/include/access/visibilitymapdefs.h [new file with mode: 0644]
src/include/utils/relcache.h

index 9b0cc16e452fcba5f465bec0d376825e233684f5..1b34ee09fa6557a410972d9cf8d40093a0dcc49c 100644 (file)
@@ -19,7 +19,7 @@
 #include <linux/fs.h>
 #endif
 
-#include "access/visibilitymap.h"
+#include "access/visibilitymapdefs.h"
 #include "common/file_perm.h"
 #include "pg_upgrade.h"
 #include "storage/bufpage.h"
index 57362c368761feeb926de3e4f1d2511af40ec000..0981b218ea0959ca9b3f513feae99642c86b9c1f 100644 (file)
 #ifndef VISIBILITYMAP_H
 #define VISIBILITYMAP_H
 
+#include "access/visibilitymapdefs.h"
 #include "access/xlogdefs.h"
 #include "storage/block.h"
 #include "storage/buf.h"
 #include "utils/relcache.h"
 
-/* Number of bits for one heap page */
-#define BITS_PER_HEAPBLOCK 2
-
-/* Flags for bit map */
-#define VISIBILITYMAP_ALL_VISIBLE  0x01
-#define VISIBILITYMAP_ALL_FROZEN   0x02
-#define VISIBILITYMAP_VALID_BITS   0x03    /* OR of all valid visibilitymap
-                                            * flags bits */
-
 /* Macros for visibilitymap test */
 #define VM_ALL_VISIBLE(r, b, v) \
    ((visibilitymap_get_status((r), (b), (v)) & VISIBILITYMAP_ALL_VISIBLE) != 0)
diff --git a/src/include/access/visibilitymapdefs.h b/src/include/access/visibilitymapdefs.h
new file mode 100644 (file)
index 0000000..58be5a4
--- /dev/null
@@ -0,0 +1,25 @@
+/*-------------------------------------------------------------------------
+ *
+ * visibilitymapdefs.h
+ *     macros for accessing contents of visibility map pages
+ *
+ *
+ * Copyright (c) 2021, PostgreSQL Global Development Group
+ *
+ * src/include/access/visibilitymapdefs.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef VISIBILITYMAPDEFS_H
+#define VISIBILITYMAPDEFS_H
+
+/* Number of bits for one heap page */
+#define BITS_PER_HEAPBLOCK 2
+
+/* Flags for bit map */
+#define VISIBILITYMAP_ALL_VISIBLE  0x01
+#define VISIBILITYMAP_ALL_FROZEN   0x02
+#define VISIBILITYMAP_VALID_BITS   0x03    /* OR of all valid visibilitymap
+                                            * flags bits */
+
+#endif                         /* VISIBILITYMAPDEFS_H */
index f772855ac69d62919eb74841206491b62c9a47ab..d2c17575f6520a850dcb3ed778953b904ca98a48 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef RELCACHE_H
 #define RELCACHE_H
 
-#include "postgres.h"
 #include "access/tupdesc.h"
 #include "nodes/bitmapset.h"