mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
branches/zip: lock0lock.c: Add const qualifiers to and assertions
about block->frame matching rec.
This commit is contained in:
parent
3a3d4469a4
commit
65e4391f60
1 changed files with 56 additions and 57 deletions
|
@ -415,7 +415,7 @@ ulint
|
|||
lock_get_type(
|
||||
/*==========*/
|
||||
/* out: LOCK_TABLE or LOCK_REC */
|
||||
lock_t* lock) /* in: lock */
|
||||
const lock_t* lock) /* in: lock */
|
||||
{
|
||||
ut_ad(lock);
|
||||
|
||||
|
@ -429,7 +429,7 @@ ibool
|
|||
lock_rec_get_nth_bit(
|
||||
/*=================*/
|
||||
/* out: TRUE if bit set */
|
||||
lock_t* lock, /* in: record lock */
|
||||
const lock_t* lock, /* in: record lock */
|
||||
ulint i) /* in: index of the bit */
|
||||
{
|
||||
ulint byte_index;
|
||||
|
@ -617,7 +617,7 @@ ulint
|
|||
lock_get_mode(
|
||||
/*==========*/
|
||||
/* out: mode */
|
||||
lock_t* lock) /* in: lock */
|
||||
const lock_t* lock) /* in: lock */
|
||||
{
|
||||
ut_ad(lock);
|
||||
|
||||
|
@ -631,7 +631,7 @@ ibool
|
|||
lock_get_wait(
|
||||
/*==========*/
|
||||
/* out: TRUE if waiting */
|
||||
lock_t* lock) /* in: lock */
|
||||
const lock_t* lock) /* in: lock */
|
||||
{
|
||||
ut_ad(lock);
|
||||
|
||||
|
@ -729,7 +729,7 @@ lock_is_table_exclusive(
|
|||
dict_table_t* table, /* in: table */
|
||||
trx_t* trx) /* in: transaction */
|
||||
{
|
||||
lock_t* lock;
|
||||
const lock_t* lock;
|
||||
ibool ok = FALSE;
|
||||
|
||||
ut_ad(table && trx);
|
||||
|
@ -778,7 +778,7 @@ lock_set_lock_and_trx_wait(
|
|||
ut_ad(trx->wait_lock == NULL);
|
||||
|
||||
trx->wait_lock = lock;
|
||||
lock->type_mode = lock->type_mode | LOCK_WAIT;
|
||||
lock->type_mode |= LOCK_WAIT;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
|
@ -796,7 +796,7 @@ lock_reset_lock_and_trx_wait(
|
|||
/* Reset the back pointer in trx to this waiting lock request */
|
||||
|
||||
(lock->trx)->wait_lock = NULL;
|
||||
lock->type_mode = lock->type_mode & ~LOCK_WAIT;
|
||||
lock->type_mode &= ~LOCK_WAIT;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -806,7 +806,7 @@ ibool
|
|||
lock_rec_get_gap(
|
||||
/*=============*/
|
||||
/* out: TRUE if gap flag set */
|
||||
lock_t* lock) /* in: record lock */
|
||||
const lock_t* lock) /* in: record lock */
|
||||
{
|
||||
ut_ad(lock);
|
||||
ut_ad(lock_get_type(lock) == LOCK_REC);
|
||||
|
@ -826,7 +826,7 @@ ibool
|
|||
lock_rec_get_rec_not_gap(
|
||||
/*=====================*/
|
||||
/* out: TRUE if LOCK_REC_NOT_GAP flag set */
|
||||
lock_t* lock) /* in: record lock */
|
||||
const lock_t* lock) /* in: record lock */
|
||||
{
|
||||
ut_ad(lock);
|
||||
ut_ad(lock_get_type(lock) == LOCK_REC);
|
||||
|
@ -846,7 +846,7 @@ ibool
|
|||
lock_rec_get_insert_intention(
|
||||
/*==========================*/
|
||||
/* out: TRUE if gap flag set */
|
||||
lock_t* lock) /* in: record lock */
|
||||
const lock_t* lock) /* in: record lock */
|
||||
{
|
||||
ut_ad(lock);
|
||||
ut_ad(lock_get_type(lock) == LOCK_REC);
|
||||
|
@ -945,19 +945,21 @@ UNIV_INLINE
|
|||
ibool
|
||||
lock_rec_has_to_wait(
|
||||
/*=================*/
|
||||
/* out: TRUE if new lock has to wait for lock2 to be
|
||||
removed */
|
||||
trx_t* trx, /* in: trx of new lock */
|
||||
ulint type_mode,/* in: precise mode of the new lock to set:
|
||||
LOCK_S or LOCK_X, possibly ORed to
|
||||
LOCK_GAP or LOCK_REC_NOT_GAP, LOCK_INSERT_INTENTION */
|
||||
lock_t* lock2, /* in: another record lock; NOTE that it is assumed
|
||||
that this has a lock bit set on the same record as
|
||||
in the new lock we are setting */
|
||||
ibool lock_is_on_supremum) /* in: TRUE if we are setting the lock
|
||||
on the 'supremum' record of an index
|
||||
page: we know then that the lock request
|
||||
is really for a 'gap' type lock */
|
||||
/* out: TRUE if new lock has to wait
|
||||
for lock2 to be removed */
|
||||
const trx_t* trx, /* in: trx of new lock */
|
||||
ulint type_mode,/* in: precise mode of the new lock
|
||||
to set: LOCK_S or LOCK_X, possibly
|
||||
ORed to LOCK_GAP or LOCK_REC_NOT_GAP,
|
||||
LOCK_INSERT_INTENTION */
|
||||
const lock_t* lock2, /* in: another record lock; NOTE that
|
||||
it is assumed that this has a lock bit
|
||||
set on the same record as in the new
|
||||
lock we are setting */
|
||||
ibool lock_is_on_supremum) /* in: TRUE if we are setting the
|
||||
lock on the 'supremum' record of an
|
||||
index page: we know then that the lock
|
||||
request is really for a 'gap' type lock */
|
||||
{
|
||||
ut_ad(trx && lock2);
|
||||
ut_ad(lock_get_type(lock2) == LOCK_REC);
|
||||
|
@ -1026,12 +1028,13 @@ static
|
|||
ibool
|
||||
lock_has_to_wait(
|
||||
/*=============*/
|
||||
/* out: TRUE if lock1 has to wait for lock2 to be
|
||||
removed */
|
||||
lock_t* lock1, /* in: waiting lock */
|
||||
lock_t* lock2) /* in: another lock; NOTE that it is assumed that this
|
||||
has a lock bit set on the same record as in lock1 if
|
||||
the locks are record locks */
|
||||
/* out: TRUE if lock1 has to wait for
|
||||
lock2 to be removed */
|
||||
const lock_t* lock1, /* in: waiting lock */
|
||||
const lock_t* lock2) /* in: another lock; NOTE that it is
|
||||
assumed that this has a lock bit set
|
||||
on the same record as in lock1 if the
|
||||
locks are record locks */
|
||||
{
|
||||
ut_ad(lock1 && lock2);
|
||||
|
||||
|
@ -1065,7 +1068,7 @@ ulint
|
|||
lock_rec_get_n_bits(
|
||||
/*================*/
|
||||
/* out: number of bits */
|
||||
lock_t* lock) /* in: record lock */
|
||||
const lock_t* lock) /* in: record lock */
|
||||
{
|
||||
return(lock->un_member.rec_lock.n_bits);
|
||||
}
|
||||
|
@ -1107,9 +1110,9 @@ static
|
|||
ulint
|
||||
lock_rec_find_set_bit(
|
||||
/*==================*/
|
||||
/* out: bit index == heap number of the record, or
|
||||
ULINT_UNDEFINED if none found */
|
||||
lock_t* lock) /* in: record lock with at least one bit set */
|
||||
/* out: bit index == heap number of
|
||||
the record, or ULINT_UNDEFINED if none found */
|
||||
const lock_t* lock) /* in: record lock with at least one bit set */
|
||||
{
|
||||
ulint i;
|
||||
|
||||
|
@ -1347,26 +1350,18 @@ lock_rec_bitmap_reset(
|
|||
/*==================*/
|
||||
lock_t* lock) /* in: record lock */
|
||||
{
|
||||
byte* ptr;
|
||||
ulint n_bytes;
|
||||
ulint i;
|
||||
|
||||
ut_ad(lock_get_type(lock) == LOCK_REC);
|
||||
|
||||
/* Reset to zero the bitmap which resides immediately after the lock
|
||||
struct */
|
||||
|
||||
ptr = (byte*)lock + sizeof(lock_t);
|
||||
|
||||
n_bytes = lock_rec_get_n_bits(lock) / 8;
|
||||
|
||||
ut_ad((lock_rec_get_n_bits(lock) % 8) == 0);
|
||||
|
||||
for (i = 0; i < n_bytes; i++) {
|
||||
|
||||
*ptr = 0;
|
||||
ptr++;
|
||||
}
|
||||
memset((byte*) lock + sizeof(lock_t), 0, n_bytes);
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -1376,7 +1371,7 @@ lock_t*
|
|||
lock_rec_copy(
|
||||
/*==========*/
|
||||
/* out: copy of lock */
|
||||
lock_t* lock, /* in: record lock */
|
||||
const lock_t* lock, /* in: record lock */
|
||||
mem_heap_t* heap) /* in: memory heap */
|
||||
{
|
||||
lock_t* dupl_lock;
|
||||
|
@ -5022,13 +5017,13 @@ lock_rec_insert_check_and_lock(
|
|||
ulint err;
|
||||
ulint next_rec_heap_no;
|
||||
|
||||
ut_ad(block->frame == page_align(rec));
|
||||
|
||||
if (flags & BTR_NO_LOCKING_FLAG) {
|
||||
|
||||
return(DB_SUCCESS);
|
||||
}
|
||||
|
||||
ut_ad(rec);
|
||||
|
||||
trx = thr_get_trx(thr);
|
||||
next_rec = page_rec_get_next(rec);
|
||||
|
||||
|
@ -5184,6 +5179,7 @@ lock_clust_rec_modify_check_and_lock(
|
|||
|
||||
ut_ad(rec_offs_validate(rec, index, offsets));
|
||||
ut_ad(dict_index_is_clust(index));
|
||||
ut_ad(block->frame == page_align((rec_t*) rec));
|
||||
|
||||
if (flags & BTR_NO_LOCKING_FLAG) {
|
||||
|
||||
|
@ -5236,13 +5232,14 @@ lock_sec_rec_modify_check_and_lock(
|
|||
ulint err;
|
||||
ulint heap_no;
|
||||
|
||||
ut_ad(!dict_index_is_clust(index));
|
||||
ut_ad(block->frame == page_align(rec));
|
||||
|
||||
if (flags & BTR_NO_LOCKING_FLAG) {
|
||||
|
||||
return(DB_SUCCESS);
|
||||
}
|
||||
|
||||
ut_ad(!dict_index_is_clust(index));
|
||||
|
||||
heap_no = page_rec_get_heap_no(rec);
|
||||
|
||||
/* Another transaction cannot have an implicit lock on the record,
|
||||
|
@ -5317,6 +5314,7 @@ lock_sec_rec_read_check_and_lock(
|
|||
ulint heap_no;
|
||||
|
||||
ut_ad(!dict_index_is_clust(index));
|
||||
ut_ad(block->frame == page_align((rec_t*) rec));
|
||||
ut_ad(page_rec_is_user_rec(rec) || page_rec_is_supremum(rec));
|
||||
ut_ad(rec_offs_validate(rec, index, offsets));
|
||||
|
||||
|
@ -5392,6 +5390,7 @@ lock_clust_rec_read_check_and_lock(
|
|||
ulint heap_no;
|
||||
|
||||
ut_ad(dict_index_is_clust(index));
|
||||
ut_ad(block->frame == page_align((rec_t*) rec));
|
||||
ut_ad(page_rec_is_user_rec(rec) || page_rec_is_supremum(rec));
|
||||
ut_ad(gap_mode == LOCK_ORDINARY || gap_mode == LOCK_GAP
|
||||
|| gap_mode == LOCK_REC_NOT_GAP);
|
||||
|
|
Loading…
Reference in a new issue