diff --git a/src/backend/utils/hash/hashfn.c b/src/backend/utils/hash/hashfn.c index 260d8806dbb..bdd438d4cab 100644 --- a/src/backend/utils/hash/hashfn.c +++ b/src/backend/utils/hash/hashfn.c @@ -22,6 +22,7 @@ #include "postgres.h" #include "access/hash.h" +#include "utils/hsearch.h" /* diff --git a/src/include/access/genam.h b/src/include/access/genam.h index d86590ac111..d9d05a08ffe 100644 --- a/src/include/access/genam.h +++ b/src/include/access/genam.h @@ -17,7 +17,7 @@ #include "access/sdir.h" #include "access/skey.h" #include "nodes/tidbitmap.h" -#include "storage/lock.h" +#include "storage/lockdefs.h" #include "utils/relcache.h" #include "utils/snapshot.h" diff --git a/src/include/access/hash.h b/src/include/access/hash.h index 93cc8afcebc..97cb859fa50 100644 --- a/src/include/access/hash.h +++ b/src/include/access/hash.h @@ -24,7 +24,7 @@ #include "fmgr.h" #include "lib/stringinfo.h" #include "storage/bufmgr.h" -#include "storage/lock.h" +#include "storage/lockdefs.h" #include "utils/relcache.h" /* diff --git a/src/include/access/tuptoaster.h b/src/include/access/tuptoaster.h index 7d185357714..77f637e90d7 100644 --- a/src/include/access/tuptoaster.h +++ b/src/include/access/tuptoaster.h @@ -14,8 +14,8 @@ #define TUPTOASTER_H #include "access/htup_details.h" +#include "storage/lockdefs.h" #include "utils/relcache.h" -#include "storage/lock.h" /* * This enables de-toasting of index entries. Needed until VACUUM is diff --git a/src/include/catalog/objectaddress.h b/src/include/catalog/objectaddress.h index 37808c03c6e..0fc16ed7173 100644 --- a/src/include/catalog/objectaddress.h +++ b/src/include/catalog/objectaddress.h @@ -14,7 +14,7 @@ #define OBJECTADDRESS_H #include "nodes/pg_list.h" -#include "storage/lock.h" +#include "storage/lockdefs.h" #include "utils/acl.h" #include "utils/relcache.h" diff --git a/src/include/port/atomics.h b/src/include/port/atomics.h index bb879450889..65cfa3f8249 100644 --- a/src/include/port/atomics.h +++ b/src/include/port/atomics.h @@ -37,6 +37,10 @@ #ifndef ATOMICS_H #define ATOMICS_H +#ifdef FRONTEND +#error "atomics.h may not be included from frontend code" +#endif + #define INSIDE_ATOMICS_H #include diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h index 96fe3a66ab0..a9cd08c5276 100644 --- a/src/include/storage/lock.h +++ b/src/include/storage/lock.h @@ -14,6 +14,11 @@ #ifndef LOCK_H_ #define LOCK_H_ +#ifdef FRONTEND +#error "lock.h may not be included from frontend code" +#endif + +#include "storage/lockdefs.h" #include "storage/backendid.h" #include "storage/lwlock.h" #include "storage/shmem.h" @@ -77,15 +82,6 @@ typedef struct ((vxid).backendId = (proc).backendId, \ (vxid).localTransactionId = (proc).lxid) - -/* - * LOCKMODE is an integer (1..N) indicating a lock type. LOCKMASK is a bit - * mask indicating a set of held or requested lock types (the bit 1<