25#define DEFAULT_LOCKMETHOD 1
26#define USER_LOCKMETHOD 2
52#define LOCKTAG_LAST_TYPE LOCKTAG_APPLY_TRANSACTION
81#define SET_LOCKTAG_RELATION(locktag,dboid,reloid) \
82 ((locktag).locktag_field1 = (dboid), \
83 (locktag).locktag_field2 = (reloid), \
84 (locktag).locktag_field3 = 0, \
85 (locktag).locktag_field4 = 0, \
86 (locktag).locktag_type = LOCKTAG_RELATION, \
87 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
90#define SET_LOCKTAG_RELATION_EXTEND(locktag,dboid,reloid) \
91 ((locktag).locktag_field1 = (dboid), \
92 (locktag).locktag_field2 = (reloid), \
93 (locktag).locktag_field3 = 0, \
94 (locktag).locktag_field4 = 0, \
95 (locktag).locktag_type = LOCKTAG_RELATION_EXTEND, \
96 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
99#define SET_LOCKTAG_DATABASE_FROZEN_IDS(locktag,dboid) \
100 ((locktag).locktag_field1 = (dboid), \
101 (locktag).locktag_field2 = 0, \
102 (locktag).locktag_field3 = 0, \
103 (locktag).locktag_field4 = 0, \
104 (locktag).locktag_type = LOCKTAG_DATABASE_FROZEN_IDS, \
105 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
108#define SET_LOCKTAG_PAGE(locktag,dboid,reloid,blocknum) \
109 ((locktag).locktag_field1 = (dboid), \
110 (locktag).locktag_field2 = (reloid), \
111 (locktag).locktag_field3 = (blocknum), \
112 (locktag).locktag_field4 = 0, \
113 (locktag).locktag_type = LOCKTAG_PAGE, \
114 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
117#define SET_LOCKTAG_TUPLE(locktag,dboid,reloid,blocknum,offnum) \
118 ((locktag).locktag_field1 = (dboid), \
119 (locktag).locktag_field2 = (reloid), \
120 (locktag).locktag_field3 = (blocknum), \
121 (locktag).locktag_field4 = (offnum), \
122 (locktag).locktag_type = LOCKTAG_TUPLE, \
123 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
126#define SET_LOCKTAG_TRANSACTION(locktag,xid) \
127 ((locktag).locktag_field1 = (xid), \
128 (locktag).locktag_field2 = 0, \
129 (locktag).locktag_field3 = 0, \
130 (locktag).locktag_field4 = 0, \
131 (locktag).locktag_type = LOCKTAG_TRANSACTION, \
132 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
135#define SET_LOCKTAG_VIRTUALTRANSACTION(locktag,vxid) \
136 ((locktag).locktag_field1 = (vxid).procNumber, \
137 (locktag).locktag_field2 = (vxid).localTransactionId, \
138 (locktag).locktag_field3 = 0, \
139 (locktag).locktag_field4 = 0, \
140 (locktag).locktag_type = LOCKTAG_VIRTUALTRANSACTION, \
141 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
147#define SET_LOCKTAG_SPECULATIVE_INSERTION(locktag,xid,token) \
148 ((locktag).locktag_field1 = (xid), \
149 (locktag).locktag_field2 = (token), \
150 (locktag).locktag_field3 = 0, \
151 (locktag).locktag_field4 = 0, \
152 (locktag).locktag_type = LOCKTAG_SPECULATIVE_TOKEN, \
153 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
162#define SET_LOCKTAG_OBJECT(locktag,dboid,classoid,objoid,objsubid) \
163 ((locktag).locktag_field1 = (dboid), \
164 (locktag).locktag_field2 = (classoid), \
165 (locktag).locktag_field3 = (objoid), \
166 (locktag).locktag_field4 = (objsubid), \
167 (locktag).locktag_type = LOCKTAG_OBJECT, \
168 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
170#define SET_LOCKTAG_ADVISORY(locktag,id1,id2,id3,id4) \
171 ((locktag).locktag_field1 = (id1), \
172 (locktag).locktag_field2 = (id2), \
173 (locktag).locktag_field3 = (id3), \
174 (locktag).locktag_field4 = (id4), \
175 (locktag).locktag_type = LOCKTAG_ADVISORY, \
176 (locktag).locktag_lockmethodid = USER_LOCKMETHOD)
182#define SET_LOCKTAG_APPLY_TRANSACTION(locktag,dboid,suboid,xid,objid) \
183 ((locktag).locktag_field1 = (dboid), \
184 (locktag).locktag_field2 = (suboid), \
185 (locktag).locktag_field3 = (xid), \
186 (locktag).locktag_field4 = (objid), \
187 (locktag).locktag_type = LOCKTAG_APPLY_TRANSACTION, \
188 (locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
@ LOCKTAG_RELATION_EXTEND
@ LOCKTAG_SPECULATIVE_TOKEN
@ LOCKTAG_APPLY_TRANSACTION
@ LOCKTAG_DATABASE_FROZEN_IDS
@ LOCKTAG_VIRTUALTRANSACTION
PGDLLIMPORT const char *const LockTagTypeNames[]
uint8 locktag_lockmethodid