Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbbf37e9

Browse files
committed
typedef struct LTAG
{ Oid relId; Oid dbId; union { BlockNumber blkno; TransactionId xid; } objId;>> Added:> /*> * offnum should be part of objId.tupleId above, but would increase> * sizeof(LOCKTAG) and so moved here; currently used by userlocks only.> */> OffsetNumber offnum; uint16 lockmethod; /* needed by userlocks */} LOCKTAG;gmake clean required...User locks are ready for 6.5 release...
1 parent42a02c4 commitbbf37e9

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

‎contrib/userlock/user_locks.c

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,66 +16,63 @@
1616

1717
#include"postgres.h"
1818
#include"miscadmin.h"
19-
#include"storage/lock.h"
19+
#include"storage/lmgr.h"
2020
#include"storage/proc.h"
21-
#include"storage/multilev.h"
2221
#include"utils/elog.h"
2322

2423
#include"user_locks.h"
2524

2625
int
27-
user_lock(unsignedintid1,unsignedintid2,LOCKMODElockmode)
26+
user_lock(uint32id1,uint32id2,LOCKMODElockmode)
2827
{
2928
LOCKTAGtag;
3029

3130
memset(&tag,0,sizeof(LOCKTAG));
3231
tag.dbId=MyDatabaseId;
3332
tag.relId=0;
34-
tag.tupleId.ip_blkid.bi_hi=id2 >>16;
35-
tag.tupleId.ip_blkid.bi_lo=id2&0xffff;
36-
tag.tupleId.ip_posid= (unsigned short) (id1&0xffff);
33+
tag.objId.blkno= (BlockNumber)id2;
34+
tag.offnum= (OffsetNumber) (id1&0xffff);
3735

3836
returnLockAcquire(USER_LOCKMETHOD,&tag,lockmode);
3937
}
4038

4139
int
42-
user_unlock(unsignedintid1,unsignedintid2,LOCKMODElockmode)
40+
user_unlock(uint32id1,uint32id2,LOCKMODElockmode)
4341
{
4442
LOCKTAGtag;
4543

4644
memset(&tag,0,sizeof(LOCKTAG));
4745
tag.dbId=MyDatabaseId;
4846
tag.relId=0;
49-
tag.tupleId.ip_blkid.bi_hi=id2 >>16;
50-
tag.tupleId.ip_blkid.bi_lo=id2&0xffff;
51-
tag.tupleId.ip_posid= (unsigned short) (id1&0xffff);
47+
tag.objId.blkno= (BlockNumber)id2;
48+
tag.offnum= (OffsetNumber) (id1&0xffff);
5249

5350
returnLockRelease(USER_LOCKMETHOD,&tag,lockmode);
5451
}
5552

5653
int
57-
user_write_lock(unsignedintid1,unsignedintid2)
54+
user_write_lock(uint32id1,uint32id2)
5855
{
59-
returnuser_lock(id1,id2,WRITE_LOCK);
56+
returnuser_lock(id1,id2,ExclusiveLock);
6057
}
6158

6259

6360
int
64-
user_write_unlock(unsignedintid1,unsignedintid2)
61+
user_write_unlock(uint32id1,uint32id2)
6562
{
66-
returnuser_unlock(id1,id2,WRITE_LOCK);
63+
returnuser_unlock(id1,id2,ExclusiveLock);
6764
}
6865

6966
int
7067
user_write_lock_oid(Oidoid)
7168
{
72-
returnuser_lock(0,oid,WRITE_LOCK);
69+
returnuser_lock(0,oid,ExclusiveLock);
7370
}
7471

7572
int
7673
user_write_unlock_oid(Oidoid)
7774
{
78-
returnuser_unlock(0,oid,WRITE_LOCK);
75+
returnuser_unlock(0,oid,ExclusiveLock);
7976
}
8077

8178
int

‎src/include/storage/lock.h

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
* Copyright (c) 1994, Regents of the University of California
88
*
9-
* $Id: lock.h,v 1.29 1999/05/29 06:14:42 vadim Exp $
9+
* $Id: lock.h,v 1.30 1999/06/01 09:35:39 vadim Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -61,14 +61,19 @@ typedef int LOCKMETHOD;
6161

6262
typedefstructLTAG
6363
{
64-
OidrelId;
65-
OiddbId;
64+
OidrelId;
65+
OiddbId;
6666
union
6767
{
68-
BlockNumberblkno;
69-
TransactionIdxid;
70-
}objId;
71-
uint16lockmethod;/* needed by user locks */
68+
BlockNumberblkno;
69+
TransactionIdxid;
70+
}objId;
71+
/*
72+
* offnum should be part of objId.tupleId above, but would increase
73+
* sizeof(LOCKTAG) and so moved here; currently used by userlocks only.
74+
*/
75+
OffsetNumberoffnum;
76+
uint16lockmethod;/* needed by userlocks */
7277
}LOCKTAG;
7378

7479
#defineTAGSIZE (sizeof(LOCKTAG))

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp