38 #ifndef UNIV_HOTBACKUP
44 mtr_memo_slot_release(
62 if (UNIV_LIKELY(
object != NULL)) {
63 if (type <= MTR_MEMO_BUF_FIX) {
65 }
else if (type == MTR_MEMO_S_LOCK) {
68 }
else if (type != MTR_MEMO_X_LOCK) {
69 ut_ad(type == MTR_MEMO_MODIFY);
70 ut_ad(mtr_memo_contains(mtr,
object,
71 MTR_MEMO_PAGE_X_FIX));
96 ut_ad(mtr->magic_n == MTR_MAGIC_N);
97 ut_ad(mtr->state == MTR_COMMITTING);
107 mtr_memo_slot_release(mtr, slot);
115 mtr_memo_slot_note_modification(
121 ut_ad(mtr->magic_n == MTR_MAGIC_N);
122 ut_ad(mtr->modifications);
124 if (slot->
object != NULL && slot->
type == MTR_MEMO_PAGE_X_FIX) {
143 mtr_memo_note_modifications(
151 ut_ad(mtr->magic_n == MTR_MAGIC_N);
152 ut_ad(mtr->state == MTR_COMMITTING);
164 mtr_memo_slot_note_modification(mtr, slot);
172 mtr_log_reserve_and_write(
187 if (mtr->n_log_recs > 1) {
190 *first_data = (byte)((ulint)*first_data
194 if (mlog->
heap == NULL) {
211 if (mtr->log_mode == MTR_LOG_ALL) {
215 while (block != NULL) {
221 ut_ad(mtr->log_mode == MTR_LOG_NONE);
235 if (mtr->modifications) {
236 mtr_memo_note_modifications(mtr);
252 ut_ad(mtr->magic_n == MTR_MAGIC_N);
253 ut_ad(mtr->state == MTR_ACTIVE);
255 ut_d(mtr->state = MTR_COMMITTING);
257 #ifndef UNIV_HOTBACKUP
259 ut_ad(!recv_no_log_write);
261 if (mtr->modifications && mtr->n_log_recs) {
262 mtr_log_reserve_and_write(mtr);
265 mtr_memo_pop_all(mtr);
268 ut_d(mtr->state = MTR_COMMITTED);
273 #ifndef UNIV_HOTBACKUP
290 ut_ad(mtr->magic_n == MTR_MAGIC_N);
291 ut_ad(mtr->state == MTR_ACTIVE);
296 ut_ad(offset >= savepoint);
298 while (offset > savepoint) {
308 mtr_memo_slot_release(mtr, slot);
327 ut_ad(mtr->magic_n == MTR_MAGIC_N);
328 ut_ad(mtr->state == MTR_ACTIVE);
340 if (
object == slot->
object && type == slot->
type) {
345 ut_ad(!(mtr->modifications
346 && slot->
type == MTR_MEMO_PAGE_X_FIX));
348 mtr_memo_slot_release(mtr, slot);
369 ut_ad(mtr->state == MTR_ACTIVE);
370 ut_ad(mtr_memo_contains_page(mtr, ptr, MTR_MEMO_PAGE_S_FIX)
371 || mtr_memo_contains_page(mtr, ptr, MTR_MEMO_PAGE_X_FIX));
383 # ifndef UNIV_HOTBACKUP
389 mtr_memo_contains_page(
395 return(mtr_memo_contains(mtr, buf_block_align(ptr), type));
407 "Mini-transaction handle: memo size %lu bytes"
408 " log size %lu bytes\n",