mirror of
https://github.com/postgres/postgres.git
synced 2025-10-18 04:29:09 +03:00
Mark ItemPointer arguments as const in tuple/table lock functions
The functions LockTuple, ConditionalLockTuple, UnlockTuple, and XactLockTableWait take an ItemPointer argument that they do not modify, so the argument can be const-qualified to better convey intent and allow the compiler to enforce immutability. Author: Chao Li <li.evan.chao@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/CAEoWx2m9e4rECHBwpRE4%2BGCH%2BpbYZXLh2f4rB1Du5hDfKug%2BOg%40mail.gmail.com
This commit is contained in:
@@ -55,7 +55,7 @@ typedef struct XactLockTableWaitInfo
|
||||
{
|
||||
XLTW_Oper oper;
|
||||
Relation rel;
|
||||
ItemPointer ctid;
|
||||
const ItemPointerData *ctid;
|
||||
} XactLockTableWaitInfo;
|
||||
|
||||
static void XactLockTableWaitErrorCb(void *arg);
|
||||
@@ -559,7 +559,7 @@ UnlockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode)
|
||||
* tuple. See heap_lock_tuple before using this!
|
||||
*/
|
||||
void
|
||||
LockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode)
|
||||
LockTuple(Relation relation, const ItemPointerData *tid, LOCKMODE lockmode)
|
||||
{
|
||||
LOCKTAG tag;
|
||||
|
||||
@@ -579,7 +579,7 @@ LockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode)
|
||||
* Returns true iff the lock was acquired.
|
||||
*/
|
||||
bool
|
||||
ConditionalLockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode,
|
||||
ConditionalLockTuple(Relation relation, const ItemPointerData *tid, LOCKMODE lockmode,
|
||||
bool logLockFailure)
|
||||
{
|
||||
LOCKTAG tag;
|
||||
@@ -598,7 +598,7 @@ ConditionalLockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode,
|
||||
* UnlockTuple
|
||||
*/
|
||||
void
|
||||
UnlockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode)
|
||||
UnlockTuple(Relation relation, const ItemPointerData *tid, LOCKMODE lockmode)
|
||||
{
|
||||
LOCKTAG tag;
|
||||
|
||||
@@ -660,7 +660,7 @@ XactLockTableDelete(TransactionId xid)
|
||||
* and if so wait for its parent.
|
||||
*/
|
||||
void
|
||||
XactLockTableWait(TransactionId xid, Relation rel, ItemPointer ctid,
|
||||
XactLockTableWait(TransactionId xid, Relation rel, const ItemPointerData *ctid,
|
||||
XLTW_Oper oper)
|
||||
{
|
||||
LOCKTAG tag;
|
||||
|
@@ -71,16 +71,16 @@ extern bool ConditionalLockPage(Relation relation, BlockNumber blkno, LOCKMODE l
|
||||
extern void UnlockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode);
|
||||
|
||||
/* Lock a tuple (see heap_lock_tuple before assuming you understand this) */
|
||||
extern void LockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode);
|
||||
extern bool ConditionalLockTuple(Relation relation, ItemPointer tid,
|
||||
extern void LockTuple(Relation relation, const ItemPointerData *tid, LOCKMODE lockmode);
|
||||
extern bool ConditionalLockTuple(Relation relation, const ItemPointerData *tid,
|
||||
LOCKMODE lockmode, bool logLockFailure);
|
||||
extern void UnlockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode);
|
||||
extern void UnlockTuple(Relation relation, const ItemPointerData *tid, LOCKMODE lockmode);
|
||||
|
||||
/* Lock an XID (used to wait for a transaction to finish) */
|
||||
extern void XactLockTableInsert(TransactionId xid);
|
||||
extern void XactLockTableDelete(TransactionId xid);
|
||||
extern void XactLockTableWait(TransactionId xid, Relation rel,
|
||||
ItemPointer ctid, XLTW_Oper oper);
|
||||
const ItemPointerData *ctid, XLTW_Oper oper);
|
||||
extern bool ConditionalXactLockTableWait(TransactionId xid,
|
||||
bool logLockFailure);
|
||||
|
||||
|
Reference in New Issue
Block a user