@@ -39,7 +39,6 @@ Note: we commit all mtrs on failure.
39
39
dberr_t
40
40
PageBulk::init ()
41
41
{
42
- mtr_t * mtr;
43
42
buf_block_t * new_block;
44
43
page_t * new_page;
45
44
page_zip_des_t * new_page_zip;
@@ -48,12 +47,10 @@ PageBulk::init()
48
47
ut_ad (m_heap == NULL );
49
48
m_heap = mem_heap_create (1000 );
50
49
51
- mtr = static_cast <mtr_t *>(
52
- mem_heap_alloc (m_heap, sizeof (mtr_t )));
53
- mtr->start ();
54
- mtr_x_lock (dict_index_get_lock (m_index), mtr);
55
- mtr->set_log_mode (MTR_LOG_NO_REDO);
56
- mtr->set_flush_observer (m_flush_observer);
50
+ m_mtr.start ();
51
+ mtr_x_lock (&m_index->lock , &m_mtr);
52
+ m_mtr.set_log_mode (MTR_LOG_NO_REDO);
53
+ m_mtr.set_flush_observer (m_flush_observer);
57
54
58
55
if (m_page_no == FIL_NULL) {
59
56
mtr_t alloc_mtr;
@@ -70,47 +67,47 @@ PageBulk::init()
70
67
success = fsp_reserve_free_extents (&n_reserved, m_index->space ,
71
68
1 , FSP_NORMAL, &alloc_mtr);
72
69
if (!success) {
73
- mtr_commit (& alloc_mtr);
74
- mtr_commit (mtr );
70
+ alloc_mtr. commit ( );
71
+ m_mtr. commit ( );
75
72
return (DB_OUT_OF_FILE_SPACE);
76
73
}
77
74
78
75
/* Allocate a new page. */
79
76
new_block = btr_page_alloc (m_index, 0 , FSP_UP, m_level,
80
- &alloc_mtr, mtr );
77
+ &alloc_mtr, &m_mtr );
81
78
82
79
if (n_reserved > 0 ) {
83
80
fil_space_release_free_extents (m_index->space ,
84
81
n_reserved);
85
82
}
86
83
87
- mtr_commit (& alloc_mtr);
84
+ alloc_mtr. commit ( );
88
85
89
86
new_page = buf_block_get_frame (new_block);
90
87
new_page_zip = buf_block_get_page_zip (new_block);
91
88
new_page_no = page_get_page_no (new_page);
92
89
93
90
if (new_page_zip) {
94
91
page_create_zip (new_block, m_index, m_level, 0 ,
95
- NULL , mtr );
92
+ NULL , &m_mtr );
96
93
} else {
97
94
ut_ad (!dict_index_is_spatial (m_index));
98
- page_create (new_block, mtr ,
95
+ page_create (new_block, &m_mtr ,
99
96
dict_table_is_comp (m_index->table ),
100
97
false );
101
- btr_page_set_level (new_page, NULL , m_level, mtr );
98
+ btr_page_set_level (new_page, NULL , m_level, &m_mtr );
102
99
}
103
100
104
- btr_page_set_next (new_page, NULL , FIL_NULL, mtr );
105
- btr_page_set_prev (new_page, NULL , FIL_NULL, mtr );
101
+ btr_page_set_next (new_page, NULL , FIL_NULL, &m_mtr );
102
+ btr_page_set_prev (new_page, NULL , FIL_NULL, &m_mtr );
106
103
107
- btr_page_set_index_id (new_page, NULL , m_index->id , mtr );
104
+ btr_page_set_index_id (new_page, NULL , m_index->id , &m_mtr );
108
105
} else {
109
106
page_id_t page_id (dict_index_get_space (m_index), m_page_no);
110
107
page_size_t page_size (dict_table_page_size (m_index->table ));
111
108
112
109
new_block = btr_block_get (page_id, page_size,
113
- RW_X_LATCH, m_index, mtr );
110
+ RW_X_LATCH, m_index, &m_mtr );
114
111
115
112
new_page = buf_block_get_frame (new_block);
116
113
new_page_zip = buf_block_get_page_zip (new_block);
@@ -119,14 +116,13 @@ PageBulk::init()
119
116
120
117
ut_ad (page_dir_get_n_heap (new_page) == PAGE_HEAP_NO_USER_LOW);
121
118
122
- btr_page_set_level (new_page, NULL , m_level, mtr );
119
+ btr_page_set_level (new_page, NULL , m_level, &m_mtr );
123
120
}
124
121
125
122
if (!m_level && dict_index_is_sec_or_ibuf (m_index)) {
126
- page_update_max_trx_id (new_block, NULL , m_trx_id, mtr );
123
+ page_update_max_trx_id (new_block, NULL , m_trx_id, &m_mtr );
127
124
}
128
125
129
- m_mtr = mtr;
130
126
m_block = new_block;
131
127
m_block->skip_flush_check = true ;
132
128
m_page = new_page;
@@ -314,7 +310,7 @@ PageBulk::commit(
314
310
}
315
311
}
316
312
317
- mtr_commit ( m_mtr);
313
+ m_mtr. commit ( );
318
314
}
319
315
320
316
/* * Compress a page of compressed table
@@ -326,7 +322,7 @@ PageBulk::compress()
326
322
ut_ad (m_page_zip != NULL );
327
323
328
324
return (page_zip_compress (m_page_zip, m_page, m_index,
329
- page_zip_level, NULL , m_mtr));
325
+ page_zip_level, NULL , & m_mtr));
330
326
}
331
327
332
328
/* * Get node pointer
478
474
PageBulk::setNext (
479
475
ulint next_page_no)
480
476
{
481
- btr_page_set_next (m_page, NULL , next_page_no, m_mtr);
477
+ btr_page_set_next (m_page, NULL , next_page_no, & m_mtr);
482
478
}
483
479
484
480
/* * Set previous page
487
483
PageBulk::setPrev (
488
484
ulint prev_page_no)
489
485
{
490
- btr_page_set_prev (m_page, NULL , prev_page_no, m_mtr);
486
+ btr_page_set_prev (m_page, NULL , prev_page_no, & m_mtr);
491
487
}
492
488
493
489
/* * Check if required space is available in the page for the rec to be inserted.
@@ -560,7 +556,7 @@ PageBulk::storeExt(
560
556
page_cur->block = m_block;
561
557
562
558
dberr_t err = btr_store_big_rec_extern_fields (
563
- &btr_pcur, offsets, big_rec, m_mtr, BTR_STORE_INSERT_BULK);
559
+ &btr_pcur, offsets, big_rec, & m_mtr, BTR_STORE_INSERT_BULK);
564
560
565
561
ut_ad (page_offset (m_cur_rec) == page_offset (page_cur->rec ));
566
562
@@ -586,27 +582,27 @@ PageBulk::release()
586
582
/* No other threads can modify this block. */
587
583
m_modify_clock = buf_block_get_modify_clock (m_block);
588
584
589
- mtr_commit ( m_mtr);
585
+ m_mtr. commit ( );
590
586
}
591
587
592
588
/* * Start mtr and latch the block */
593
589
dberr_t
594
590
PageBulk::latch ()
595
591
{
596
- m_mtr-> start ();
597
- mtr_x_lock (dict_index_get_lock ( m_index), m_mtr);
598
- m_mtr-> set_log_mode (MTR_LOG_NO_REDO);
599
- m_mtr-> set_flush_observer (m_flush_observer);
592
+ m_mtr. start ();
593
+ mtr_x_lock (& m_index-> lock , & m_mtr);
594
+ m_mtr. set_log_mode (MTR_LOG_NO_REDO);
595
+ m_mtr. set_flush_observer (m_flush_observer);
600
596
601
597
/* In case the block is S-latched by page_cleaner. */
602
598
if (!buf_page_optimistic_get (RW_X_LATCH, m_block, m_modify_clock,
603
- __FILE__, __LINE__, m_mtr)) {
599
+ __FILE__, __LINE__, & m_mtr)) {
604
600
page_id_t page_id (dict_index_get_space (m_index), m_page_no);
605
601
page_size_t page_size (dict_table_page_size (m_index->table ));
606
602
607
603
m_block = buf_page_get_gen (page_id, page_size, RW_X_LATCH,
608
604
m_block, BUF_GET_IF_IN_POOL,
609
- __FILE__, __LINE__, m_mtr, &m_err);
605
+ __FILE__, __LINE__, & m_mtr, &m_err);
610
606
611
607
if (m_err != DB_SUCCESS) {
612
608
return (m_err);
0 commit comments