|
14 | 14 | #ifndef LOCK_H_ |
15 | 15 | #define LOCK_H_ |
16 | 16 |
|
| 17 | +#ifdef FRONTEND |
| 18 | +#error "lock.h may not be included from frontend code" |
| 19 | +#endif |
| 20 | + |
| 21 | +#include "storage/lockdefs.h" |
17 | 22 | #include "storage/backendid.h" |
18 | 23 | #include "storage/lwlock.h" |
19 | 24 | #include "storage/shmem.h" |
@@ -77,15 +82,6 @@ typedef struct |
77 | 82 | ((vxid).backendId = (proc).backendId, \ |
78 | 83 | (vxid).localTransactionId = (proc).lxid) |
79 | 84 |
|
80 | | - |
81 | | -/* |
82 | | - * LOCKMODE is an integer (1..N) indicating a lock type. LOCKMASK is a bit |
83 | | - * mask indicating a set of held or requested lock types (the bit 1<<mode |
84 | | - * corresponds to a particular lock mode). |
85 | | - */ |
86 | | -typedef int LOCKMASK; |
87 | | -typedef int LOCKMODE; |
88 | | - |
89 | 85 | /* MAX_LOCKMODES cannot be larger than the # of bits in LOCKMASK */ |
90 | 86 | #define MAX_LOCKMODES 10 |
91 | 87 |
|
@@ -133,28 +129,6 @@ typedef uint16 LOCKMETHODID; |
133 | 129 | #define DEFAULT_LOCKMETHOD 1 |
134 | 130 | #define USER_LOCKMETHOD 2 |
135 | 131 |
|
136 | | -/* |
137 | | - * These are the valid values of type LOCKMODE for all the standard lock |
138 | | - * methods (both DEFAULT and USER). |
139 | | - */ |
140 | | - |
141 | | -/* NoLock is not a lock mode, but a flag value meaning "don't get a lock" */ |
142 | | -#define NoLock 0 |
143 | | - |
144 | | -#define AccessShareLock 1 /* SELECT */ |
145 | | -#define RowShareLock 2 /* SELECT FOR UPDATE/FOR SHARE */ |
146 | | -#define RowExclusiveLock 3 /* INSERT, UPDATE, DELETE */ |
147 | | -#define ShareUpdateExclusiveLock 4 /* VACUUM (non-FULL),ANALYZE, CREATE |
148 | | - * INDEX CONCURRENTLY */ |
149 | | -#define ShareLock 5 /* CREATE INDEX (WITHOUT CONCURRENTLY) */ |
150 | | -#define ShareRowExclusiveLock 6 /* like EXCLUSIVE MODE, but allows ROW |
151 | | - * SHARE */ |
152 | | -#define ExclusiveLock 7 /* blocks ROW SHARE/SELECT...FOR |
153 | | - * UPDATE */ |
154 | | -#define AccessExclusiveLock 8 /* ALTER TABLE, DROP TABLE, VACUUM |
155 | | - * FULL, and unqualified LOCK TABLE */ |
156 | | - |
157 | | - |
158 | 132 | /* |
159 | 133 | * LOCKTAG is the key information needed to look up a LOCK item in the |
160 | 134 | * lock hashtable. A LOCKTAG value uniquely identifies a lockable object. |
@@ -536,13 +510,6 @@ extern void RemoveFromWaitQueue(PGPROC *proc, uint32 hashcode); |
536 | 510 | extern Size LockShmemSize(void); |
537 | 511 | extern LockData *GetLockStatusData(void); |
538 | 512 |
|
539 | | -typedef struct xl_standby_lock |
540 | | -{ |
541 | | - TransactionId xid; /* xid of holder of AccessExclusiveLock */ |
542 | | - Oid dbOid; |
543 | | - Oid relOid; |
544 | | -} xl_standby_lock; |
545 | | - |
546 | 513 | extern xl_standby_lock *GetRunningTransactionLocks(int *nlocks); |
547 | 514 | extern const char *GetLockmodeName(LOCKMETHODID lockmethodid, LOCKMODE mode); |
548 | 515 |
|
|
0 commit comments