|
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 |
|
|