Skip to content

Commit 8868258

Browse files
author
Alexander Korotkov
committed
Make locktags aware of xid 64-bitness.
1 parent f1dc4ec commit 8868258

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/include/storage/lock.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -233,25 +233,25 @@ typedef struct LOCKTAG
233233
(locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
234234

235235
#define SET_LOCKTAG_TRANSACTION(locktag,xid) \
236-
((locktag).locktag_field1 = (xid), \
237-
(locktag).locktag_field2 = 0, \
236+
((locktag).locktag_field1 = (uint32)((xid) >> 32), \
237+
(locktag).locktag_field2 = (uint32)((xid) & 0xFFFFFFFF), \
238238
(locktag).locktag_field3 = 0, \
239239
(locktag).locktag_field4 = 0, \
240240
(locktag).locktag_type = LOCKTAG_TRANSACTION, \
241241
(locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
242242

243243
#define SET_LOCKTAG_VIRTUALTRANSACTION(locktag,vxid) \
244244
((locktag).locktag_field1 = (vxid).backendId, \
245-
(locktag).locktag_field2 = (vxid).localTransactionId, \
246-
(locktag).locktag_field3 = 0, \
245+
(locktag).locktag_field2 = (uint32)((vxid).localTransactionId >> 32), \
246+
(locktag).locktag_field3 = (uint32)((vxid).localTransactionId & 0xFFFFFFFF), \
247247
(locktag).locktag_field4 = 0, \
248248
(locktag).locktag_type = LOCKTAG_VIRTUALTRANSACTION, \
249249
(locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)
250250

251251
#define SET_LOCKTAG_SPECULATIVE_INSERTION(locktag,xid,token) \
252-
((locktag).locktag_field1 = (xid), \
253-
(locktag).locktag_field2 = (token), \
254-
(locktag).locktag_field3 = 0, \
252+
((locktag).locktag_field1 = (uint32)((xid) >> 32), \
253+
(locktag).locktag_field2 = (uint32)((xid) & 0xFFFFFFFF), \
254+
(locktag).locktag_field3 = (token), \
255255
(locktag).locktag_field4 = 0, \
256256
(locktag).locktag_type = LOCKTAG_SPECULATIVE_TOKEN, \
257257
(locktag).locktag_lockmethodid = DEFAULT_LOCKMETHOD)

0 commit comments

Comments
 (0)