|
14 | 14 | #ifndefLOCK_H_ |
15 | 15 | #defineLOCK_H_ |
16 | 16 |
|
| 17 | +#ifdefFRONTEND |
| 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 | | -typedefintLOCKMASK; |
87 | | -typedefintLOCKMODE; |
88 | | - |
89 | 85 | /* MAX_LOCKMODES cannot be larger than the # of bits in LOCKMASK */ |
90 | 86 | #defineMAX_LOCKMODES10 |
91 | 87 |
|
@@ -133,28 +129,6 @@ typedef uint16 LOCKMETHODID; |
133 | 129 | #defineDEFAULT_LOCKMETHOD1 |
134 | 130 | #defineUSER_LOCKMETHOD2 |
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 | | -#defineNoLock0 |
143 | | - |
144 | | -#defineAccessShareLock1/* SELECT */ |
145 | | -#defineRowShareLock2/* SELECT FOR UPDATE/FOR SHARE */ |
146 | | -#defineRowExclusiveLock3/* INSERT, UPDATE, DELETE */ |
147 | | -#defineShareUpdateExclusiveLock 4/* VACUUM (non-FULL),ANALYZE, CREATE |
148 | | - * INDEX CONCURRENTLY */ |
149 | | -#defineShareLock5/* CREATE INDEX (WITHOUT CONCURRENTLY) */ |
150 | | -#defineShareRowExclusiveLock6/* like EXCLUSIVE MODE, but allows ROW |
151 | | - * SHARE */ |
152 | | -#defineExclusiveLock7/* blocks ROW SHARE/SELECT...FOR |
153 | | - * UPDATE */ |
154 | | -#defineAccessExclusiveLock8/* 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 | externSizeLockShmemSize(void); |
537 | 511 | externLockData*GetLockStatusData(void); |
538 | 512 |
|
539 | | -typedefstructxl_standby_lock |
540 | | -{ |
541 | | -TransactionIdxid;/* xid of holder of AccessExclusiveLock */ |
542 | | -OiddbOid; |
543 | | -OidrelOid; |
544 | | -}xl_standby_lock; |
545 | | - |
546 | 513 | externxl_standby_lock*GetRunningTransactionLocks(int*nlocks); |
547 | 514 | externconstchar*GetLockmodeName(LOCKMETHODIDlockmethodid,LOCKMODEmode); |
548 | 515 |
|
|