summaryrefslogtreecommitdiff
path: root/storage/innobase/btr
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-11-14 14:49:20 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2019-11-14 14:49:20 +0200
commitae90f8431ba80383f75810248ddaaa9d2c6fd09f (patch)
tree8f4e6f29d991188b01db6695c3229f6201cc6121 /storage/innobase/btr
parentc454b8964c10301dceab6d1a5489350a0f8fbf9c (diff)
parent89ae01fd0085cf0d1af272eca545e49fdadf4538 (diff)
downloadmariadb-git-ae90f8431ba80383f75810248ddaaa9d2c6fd09f.tar.gz
Merge 10.4 into 10.5
Diffstat (limited to 'storage/innobase/btr')
-rw-r--r--storage/innobase/btr/btr0btr.cc18
-rw-r--r--storage/innobase/btr/btr0bulk.cc2
-rw-r--r--storage/innobase/btr/btr0cur.cc30
-rw-r--r--storage/innobase/btr/btr0defragment.cc2
-rw-r--r--storage/innobase/btr/btr0scrub.cc2
5 files changed, 27 insertions, 27 deletions
diff --git a/storage/innobase/btr/btr0btr.cc b/storage/innobase/btr/btr0btr.cc
index 7b871a2414a..748efed022c 100644
--- a/storage/innobase/btr/btr0btr.cc
+++ b/storage/innobase/btr/btr0btr.cc
@@ -4805,13 +4805,13 @@ btr_validate_level(
ulint parent_right_page_no = FIL_NULL;
bool rightmost_child = false;
- mtr_start(&mtr);
+ mtr.start();
if (!srv_read_only_mode) {
if (lockout) {
- mtr_x_lock(dict_index_get_lock(index), &mtr);
+ mtr_x_lock_index(index, &mtr);
} else {
- mtr_sx_lock(dict_index_get_lock(index), &mtr);
+ mtr_sx_lock_index(index, &mtr);
}
}
@@ -4885,9 +4885,9 @@ loop:
offsets = offsets2 = NULL;
if (!srv_read_only_mode) {
if (lockout) {
- mtr_x_lock(dict_index_get_lock(index), &mtr);
+ mtr_x_lock_index(index, &mtr);
} else {
- mtr_sx_lock(dict_index_get_lock(index), &mtr);
+ mtr_sx_lock_index(index, &mtr);
}
}
@@ -5177,13 +5177,13 @@ node_ptr_fails:
/* Commit the mini-transaction to release the latch on 'page'.
Re-acquire the latch on right_page, which will become 'page'
on the next loop. The page has already been checked. */
- mtr_commit(&mtr);
+ mtr.commit();
if (trx_is_interrupted(trx)) {
/* On interrupt, return the current status. */
} else if (right_page_no != FIL_NULL) {
- mtr_start(&mtr);
+ mtr.start();
if (!lockout) {
if (rightmost_child) {
@@ -5235,9 +5235,9 @@ btr_validate_index(
if (!srv_read_only_mode) {
if (lockout) {
- mtr_x_lock(dict_index_get_lock(index), &mtr);
+ mtr_x_lock_index(index, &mtr);
} else {
- mtr_sx_lock(dict_index_get_lock(index), &mtr);
+ mtr_sx_lock_index(index, &mtr);
}
}
diff --git a/storage/innobase/btr/btr0bulk.cc b/storage/innobase/btr/btr0bulk.cc
index 2c36db7cab5..dd691000b79 100644
--- a/storage/innobase/btr/btr0bulk.cc
+++ b/storage/innobase/btr/btr0bulk.cc
@@ -1012,7 +1012,7 @@ BtrBulk::finish(dberr_t err)
mtr.start();
m_index->set_modified(mtr);
- mtr_x_lock(&m_index->lock, &mtr);
+ mtr_x_lock_index(m_index, &mtr);
ut_ad(last_page_no != FIL_NULL);
last_block = btr_block_get(*m_index, last_page_no, RW_X_LATCH,
diff --git a/storage/innobase/btr/btr0cur.cc b/storage/innobase/btr/btr0cur.cc
index 9bf88f66889..59f436605fc 100644
--- a/storage/innobase/btr/btr0cur.cc
+++ b/storage/innobase/btr/btr0cur.cc
@@ -1398,16 +1398,16 @@ btr_cur_search_to_nth_level_func(
if (lock_intention == BTR_INTENTION_DELETE
&& trx_sys.rseg_history_len > BTR_CUR_FINE_HISTORY_LENGTH
&& buf_get_n_pending_read_ios()) {
- mtr_x_lock(dict_index_get_lock(index), mtr);
- } else if (dict_index_is_spatial(index)
+x_latch_index:
+ mtr_x_lock_index(index, mtr);
+ } else if (index->is_spatial()
&& lock_intention <= BTR_INTENTION_BOTH) {
/* X lock the if there is possibility of
pessimistic delete on spatial index. As we could
lock upward for the tree */
-
- mtr_x_lock(dict_index_get_lock(index), mtr);
+ goto x_latch_index;
} else {
- mtr_sx_lock(dict_index_get_lock(index), mtr);
+ mtr_sx_lock_index(index, mtr);
}
upper_rw_latch = RW_X_LATCH;
break;
@@ -1439,10 +1439,10 @@ btr_cur_search_to_nth_level_func(
BTR_ALREADY_S_LATCHED */
ut_ad(latch_mode != BTR_SEARCH_TREE);
- mtr_s_lock(dict_index_get_lock(index), mtr);
+ mtr_s_lock_index(index, mtr);
} else {
/* BTR_MODIFY_EXTERNAL needs to be excluded */
- mtr_sx_lock(dict_index_get_lock(index), mtr);
+ mtr_sx_lock_index(index, mtr);
}
upper_rw_latch = RW_S_LATCH;
} else {
@@ -2526,9 +2526,9 @@ btr_cur_open_at_index_side_func(
if (lock_intention == BTR_INTENTION_DELETE
&& trx_sys.rseg_history_len > BTR_CUR_FINE_HISTORY_LENGTH
&& buf_get_n_pending_read_ios()) {
- mtr_x_lock(dict_index_get_lock(index), mtr);
+ mtr_x_lock_index(index, mtr);
} else {
- mtr_sx_lock(dict_index_get_lock(index), mtr);
+ mtr_sx_lock_index(index, mtr);
}
upper_rw_latch = RW_X_LATCH;
break;
@@ -2544,7 +2544,7 @@ btr_cur_open_at_index_side_func(
BTR_ALREADY_S_LATCHED */
ut_ad(latch_mode != BTR_SEARCH_TREE);
- mtr_s_lock(dict_index_get_lock(index), mtr);
+ mtr_s_lock_index(index, mtr);
}
upper_rw_latch = RW_S_LATCH;
} else {
@@ -2835,7 +2835,7 @@ btr_cur_open_at_rnd_pos_func(
ulint* offsets = offsets_;
rec_offs_init(offsets_);
- ut_ad(!dict_index_is_spatial(index));
+ ut_ad(!index->is_spatial());
lock_intention = btr_cur_get_and_clear_intention(&latch_mode);
@@ -2853,9 +2853,9 @@ btr_cur_open_at_rnd_pos_func(
if (lock_intention == BTR_INTENTION_DELETE
&& trx_sys.rseg_history_len > BTR_CUR_FINE_HISTORY_LENGTH
&& buf_get_n_pending_read_ios()) {
- mtr_x_lock(dict_index_get_lock(index), mtr);
+ mtr_x_lock_index(index, mtr);
} else {
- mtr_sx_lock(dict_index_get_lock(index), mtr);
+ mtr_sx_lock_index(index, mtr);
}
upper_rw_latch = RW_X_LATCH;
break;
@@ -2871,7 +2871,7 @@ btr_cur_open_at_rnd_pos_func(
/* fall through */
default:
if (!srv_read_only_mode) {
- mtr_s_lock(dict_index_get_lock(index), mtr);
+ mtr_s_lock_index(index, mtr);
upper_rw_latch = RW_S_LATCH;
} else {
upper_rw_latch = RW_NO_LATCH;
@@ -5094,7 +5094,7 @@ btr_cur_pessimistic_update(
MTR_MEMO_X_LOCK |
MTR_MEMO_SX_LOCK));
- mtr_sx_lock(dict_index_get_lock(index), mtr);
+ mtr_sx_lock_index(index, mtr);
}
/* Was the record to be updated positioned as the first user
diff --git a/storage/innobase/btr/btr0defragment.cc b/storage/innobase/btr/btr0defragment.cc
index 15e4e6cd70b..fc34a75d11a 100644
--- a/storage/innobase/btr/btr0defragment.cc
+++ b/storage/innobase/btr/btr0defragment.cc
@@ -741,7 +741,7 @@ DECLARE_THREAD(btr_defragment_thread)(void*)
index->set_modified(mtr);
/* To follow the latching order defined in WL#6326, acquire index->lock X-latch.
This entitles us to acquire page latches in any order for the index. */
- mtr_x_lock(&index->lock, &mtr);
+ mtr_x_lock_index(index, &mtr);
/* This will acquire index->lock SX-latch, which per WL#6363 is allowed
when we are already holding the X-latch. */
btr_pcur_restore_position(BTR_MODIFY_TREE, pcur, &mtr);
diff --git a/storage/innobase/btr/btr0scrub.cc b/storage/innobase/btr/btr0scrub.cc
index 63c2271c1e3..9fdb942c1a5 100644
--- a/storage/innobase/btr/btr0scrub.cc
+++ b/storage/innobase/btr/btr0scrub.cc
@@ -738,7 +738,7 @@ btr_scrub_recheck_page(
}
mtr_start(mtr);
- mtr_x_lock(dict_index_get_lock(scrub_data->current_index), mtr);
+ mtr_x_lock_index(scrub_data->current_index, mtr);
/** set savepoint for X-latch of block */
scrub_data->savepoint = mtr_set_savepoint(mtr);
return BTR_SCRUB_PAGE;