summaryrefslogtreecommitdiff
path: root/storage/innobase/row/row0purge.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-12-03 10:29:50 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2019-12-03 11:05:19 +0200
commitaf5947f433e98d0447960da07856eb207dd09e01 (patch)
treefbb21b374bf87d1462e5f7c22f0a35d795d31f95 /storage/innobase/row/row0purge.cc
parent87839258f86196dfca1d3af2a947e570e13eeb94 (diff)
downloadmariadb-git-af5947f433e98d0447960da07856eb207dd09e01.tar.gz
MDEV-21174: Replace mlog_write_string() with mtr_t::memcpy()
mtr_t::memcpy(): Replaces mlog_write_string(), mlog_log_string(). The buf_block_t is passed a parameter, so that mlog_write_initial_log_record_low() can be used instead of mlog_write_initial_log_record_fast(). fil_space_crypt_t::write_page0(): Remove the fil_space_t* parameter.
Diffstat (limited to 'storage/innobase/row/row0purge.cc')
-rw-r--r--storage/innobase/row/row0purge.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/storage/innobase/row/row0purge.cc b/storage/innobase/row/row0purge.cc
index 9636ba325dc..3361439bf6e 100644
--- a/storage/innobase/row/row0purge.cc
+++ b/storage/innobase/row/row0purge.cc
@@ -838,8 +838,15 @@ static void row_purge_reset_trx_id(purge_node_t* node, mtr_t* mtr)
byte* ptr = rec_get_nth_field(
rec, offsets, trx_id_pos, &len);
ut_ad(len == DATA_TRX_ID_LEN);
- mlog_write_string(ptr, reset_trx_id,
- sizeof reset_trx_id, mtr);
+ buf_block_t* block = btr_pcur_get_block(
+ &node->pcur);
+ uint16_t offs = page_offset(ptr);
+ mtr->memset(block, offs, DATA_TRX_ID_LEN, 0);
+ offs += DATA_TRX_ID_LEN;
+ mtr->write<1,mtr_t::OPT>(*block, block->frame
+ + offs, 0x80U);
+ mtr->memset(block, offs + 1,
+ DATA_ROLL_PTR_LEN - 1, 0);
}
}
}