mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
MDEV-12072 Do not unnecessarily construct rec_printer objects
I introduced the rec_printer object in MySQL to pretty-print raw InnoDB records and index tuples in diagnostic messages. These objects are being constructed unconditionally, even though the DBUG_PRINT is not enabled. The unnecessary work is avoided by simply passing rec_printer(…).str() to the DBUG_LOG macro that was introduced in MDEV-11713.
This commit is contained in:
parent
37925c6ccc
commit
7a5288015c
3 changed files with 68 additions and 132 deletions
|
@ -3012,18 +3012,10 @@ fail_err:
|
|||
|
||||
page_cursor = btr_cur_get_page_cur(cursor);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(entry);
|
||||
DBUG_PRINT("ib_cur", ("insert %s (" IB_ID_FMT ") by " IB_ID_FMT " %s",
|
||||
index->name(), index->id,
|
||||
thr != NULL
|
||||
? trx_get_id_for_print(thr_get_trx(thr))
|
||||
: 0,
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
|
||||
DBUG_LOG("ib_cur",
|
||||
"insert " << index->name << " (" << index->id << ") by "
|
||||
<< ib::hex(thr ? trx_get_id_for_print(thr_get_trx(thr)) : 0)
|
||||
<< ' ' << rec_printer(entry).str());
|
||||
DBUG_EXECUTE_IF("do_page_reorganize",
|
||||
btr_page_reorganize(page_cursor, index, mtr););
|
||||
|
||||
|
@ -3635,14 +3627,10 @@ btr_cur_update_in_place(
|
|||
ut_ad(fil_page_index_page_check(btr_cur_get_page(cursor)));
|
||||
ut_ad(btr_page_get_index_id(btr_cur_get_page(cursor)) == index->id);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(rec, offsets);
|
||||
DBUG_PRINT("ib_cur", ("update-in-place %s (" IB_ID_FMT ") by " IB_ID_FMT ": %s",
|
||||
index->name(), index->id, trx_id,
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_cur",
|
||||
"update-in-place " << index->name << " (" << index->id
|
||||
<< ") by " << ib::hex(trx_id) << ": "
|
||||
<< rec_printer(rec, offsets).str());
|
||||
|
||||
block = btr_cur_get_block(cursor);
|
||||
page_zip = buf_block_get_page_zip(block);
|
||||
|
@ -3842,14 +3830,10 @@ any_extern:
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(rec, *offsets);
|
||||
DBUG_PRINT("ib_cur", ("update %s (" IB_ID_FMT ") by " IB_ID_FMT ": %s",
|
||||
index->name(), index->id, trx_id,
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_cur",
|
||||
"update " << index->name << " (" << index->id << ") by "
|
||||
<< ib::hex(trx_id) << ": "
|
||||
<< rec_printer(rec, *offsets).str());
|
||||
|
||||
page_cursor = btr_cur_get_page_cur(cursor);
|
||||
|
||||
|
@ -4669,15 +4653,11 @@ btr_cur_del_mark_set_clust_rec(
|
|||
ut_ad(trx_state_eq(trx, TRX_STATE_ACTIVE));
|
||||
ut_ad(!trx->in_rollback);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(rec, offsets);
|
||||
DBUG_PRINT("ib_cur", ("delete-mark clust %s (" IB_ID_FMT ") by " IB_ID_FMT ": %s",
|
||||
index->table_name, index->id,
|
||||
trx_get_id_for_print(trx),
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_cur",
|
||||
"delete-mark clust " << index->table->name
|
||||
<< " (" << index->id << ") by "
|
||||
<< ib::hex(trx_get_id_for_print(trx)) << ": "
|
||||
<< rec_printer(rec, offsets).str());
|
||||
|
||||
if (dict_index_is_online_ddl(index)) {
|
||||
row_log_table_delete(rec, entry, index, offsets, NULL);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, MariaDB Corporation.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -1641,15 +1642,9 @@ row_log_table_apply_insert_low(
|
|||
ut_ad(dtuple_validate(row));
|
||||
ut_ad(trx_id);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(row);
|
||||
DBUG_PRINT("ib_alter_table",
|
||||
("insert table " IB_ID_FMT " (index " IB_ID_FMT "): %s",
|
||||
index->table->id, index->id,
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_alter_table",
|
||||
"insert table " << index->table->id << " (index "
|
||||
<< index->id << "): " << rec_printer(row).str());
|
||||
|
||||
static const ulint flags
|
||||
= (BTR_CREATE_FLAG
|
||||
|
@ -1777,15 +1772,10 @@ row_log_table_apply_delete_low(
|
|||
|
||||
ut_ad(dict_index_is_clust(index));
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(btr_pcur_get_rec(pcur), offsets);
|
||||
DBUG_PRINT("ib_alter_table",
|
||||
("delete table " IB_ID_FMT " (index " IB_ID_FMT "): %s",
|
||||
index->table->id, index->id,
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_alter_table",
|
||||
"delete table " << index->table->id << " (index "
|
||||
<< index->id << "): "
|
||||
<< rec_printer(btr_pcur_get_rec(pcur), offsets).str());
|
||||
|
||||
if (dict_table_get_next_index(index)) {
|
||||
/* Build a row template for purging secondary index entries. */
|
||||
|
@ -2266,17 +2256,11 @@ func_exit_committed:
|
|||
cur_offsets, NULL, NULL, NULL, &old_ext, heap);
|
||||
ut_ad(old_row);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer old(old_row);
|
||||
rec_printer new_row(row);
|
||||
DBUG_PRINT("ib_alter_table",
|
||||
("update table " IB_ID_FMT " (index " IB_ID_FMT "): %s to %s",
|
||||
index->table->id, index->id,
|
||||
old.str().c_str(),
|
||||
new_row.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_alter_table",
|
||||
"update table " << index->table->id
|
||||
<< " (index " << index->id
|
||||
<< ": " << rec_printer(old_row).str()
|
||||
<< " to " << rec_printer(row).str());
|
||||
} else {
|
||||
old_row = NULL;
|
||||
old_ext = NULL;
|
||||
|
@ -3298,17 +3282,11 @@ row_log_apply_op_low(
|
|||
ut_ad(!dict_index_is_corrupted(index));
|
||||
ut_ad(trx_id != 0 || op == ROW_OP_DELETE);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(entry);
|
||||
DBUG_PRINT("ib_create_index",
|
||||
("%s %s index " IB_ID_FMT "," IB_ID_FMT ": %s",
|
||||
op == ROW_OP_INSERT ? "insert" : "delete",
|
||||
has_index_lock ? "locked" : "unlocked",
|
||||
index->id, trx_id,
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_create_index",
|
||||
(op == ROW_OP_INSERT ? "insert " : "delete ")
|
||||
<< (has_index_lock ? "locked index " : "unlocked index ")
|
||||
<< index->id << ',' << ib::hex(trx_id) << ": "
|
||||
<< rec_printer(entry).str());
|
||||
|
||||
mtr_start(&mtr);
|
||||
mtr.set_named_space(index->space);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, MariaDB Corporation.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -1100,16 +1101,11 @@ row_merge_buf_write(
|
|||
row_merge_buf_encode(&b, index, entry, n_fields);
|
||||
ut_ad(b < &block[srv_sort_buf_size]);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(entry->fields, n_fields);
|
||||
DBUG_PRINT("ib_merge_sort",
|
||||
("%p,fd=%d,%lu %lu: %s",
|
||||
reinterpret_cast<const void*>(b), of->fd,
|
||||
(ulint)of->offset, (ulint)i,
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_merge_sort",
|
||||
reinterpret_cast<const void*>(b) << ','
|
||||
<< of->fd << ',' << of->offset << ' ' <<
|
||||
i << ": " <<
|
||||
rec_printer(entry->fields, n_fields).str());
|
||||
}
|
||||
|
||||
/* Write an "end-of-chunk" marker. */
|
||||
|
@ -1121,10 +1117,9 @@ row_merge_buf_write(
|
|||
to avoid bogus warnings. */
|
||||
memset(b, 0xff, &block[srv_sort_buf_size] - b);
|
||||
#endif /* UNIV_DEBUG_VALGRIND */
|
||||
DBUG_PRINT("ib_merge_sort",
|
||||
("write %p,%d,%lu EOF",
|
||||
reinterpret_cast<const void*>(b), of->fd,
|
||||
(ulint)of->offset));
|
||||
DBUG_LOG("ib_merge_sort",
|
||||
"write " << reinterpret_cast<const void*>(b) << ','
|
||||
<< of->fd << ',' << of->offset << " EOF");
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
@ -1177,7 +1172,7 @@ row_merge_read(
|
|||
os_offset_t ofs = ((os_offset_t) offset) * srv_sort_buf_size;
|
||||
|
||||
DBUG_ENTER("row_merge_read");
|
||||
DBUG_PRINT("ib_merge_sort", ("fd=%d ofs=" UINT64PF, fd, ofs));
|
||||
DBUG_LOG("ib_merge_sort", "fd=" << fd << " ofs=" << ofs);
|
||||
DBUG_EXECUTE_IF("row_merge_read_failure", DBUG_RETURN(FALSE););
|
||||
|
||||
IORequest request;
|
||||
|
@ -1224,7 +1219,7 @@ row_merge_write(
|
|||
void* out_buf = (void *)buf;
|
||||
|
||||
DBUG_ENTER("row_merge_write");
|
||||
DBUG_PRINT("ib_merge_sort", ("fd=%d ofs=" UINT64PF, fd, ofs));
|
||||
DBUG_LOG("ib_merge_sort", "fd=" << fd << " ofs=" << ofs);
|
||||
DBUG_EXECUTE_IF("row_merge_write_failure", DBUG_RETURN(FALSE););
|
||||
|
||||
IORequest request(IORequest::WRITE);
|
||||
|
@ -1296,11 +1291,10 @@ row_merge_read_rec(
|
|||
if (UNIV_UNLIKELY(!extra_size)) {
|
||||
/* End of list */
|
||||
*mrec = NULL;
|
||||
DBUG_PRINT("ib_merge_sort",
|
||||
("read %p,%p,%d,%lu EOF\n",
|
||||
reinterpret_cast<const void*>(b),
|
||||
reinterpret_cast<const void*>(block),
|
||||
fd, ulint(*foffs)));
|
||||
DBUG_LOG("ib_merge_sort",
|
||||
"read " << reinterpret_cast<const void*>(b) << ',' <<
|
||||
reinterpret_cast<const void*>(block) << ',' <<
|
||||
fd << ',' << *foffs << " EOF");
|
||||
DBUG_RETURN(NULL);
|
||||
}
|
||||
|
||||
|
@ -1413,18 +1407,11 @@ err_exit:
|
|||
b += extra_size + data_size - avail_size;
|
||||
|
||||
func_exit:
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(*mrec, 0, offsets);
|
||||
DBUG_PRINT("ib_merge_sort",
|
||||
("%p,%p,fd=%d,%lu: %s",
|
||||
reinterpret_cast<const void*>(b),
|
||||
reinterpret_cast<const void*>(block),
|
||||
fd, ulint(*foffs),
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_merge_sort",
|
||||
reinterpret_cast<const void*>(b) << ',' <<
|
||||
reinterpret_cast<const void*>(block)
|
||||
<< ",fd=" << fd << ',' << *foffs << ": "
|
||||
<< rec_printer(*mrec, 0, offsets).str());
|
||||
DBUG_RETURN(b);
|
||||
}
|
||||
|
||||
|
@ -1455,15 +1442,9 @@ row_merge_write_rec_low(
|
|||
#endif /* DBUG_OFF */
|
||||
DBUG_ASSERT(e == rec_offs_extra_size(offsets) + 1);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
{
|
||||
rec_printer p(mrec, 0, offsets);
|
||||
DBUG_PRINT("ib_merge_sort",
|
||||
("%p,fd=%d,%lu: %s",
|
||||
reinterpret_cast<const void*>(b), fd, ulint(foffs),
|
||||
p.str().c_str()));
|
||||
}
|
||||
#endif
|
||||
DBUG_LOG("ib_merge_sort",
|
||||
reinterpret_cast<const void*>(b) << ",fd=" << fd << ','
|
||||
<< foffs << ": " << rec_printer(mrec, 0, offsets).str());
|
||||
|
||||
if (e < 0x80) {
|
||||
*b++ = (byte) e;
|
||||
|
@ -1573,11 +1554,10 @@ row_merge_write_eof(
|
|||
ut_ad(foffs);
|
||||
|
||||
DBUG_ENTER("row_merge_write_eof");
|
||||
DBUG_PRINT("ib_merge_sort",
|
||||
("%p,%p,fd=%d,%lu",
|
||||
reinterpret_cast<const void*>(b),
|
||||
reinterpret_cast<const void*>(block),
|
||||
fd, ulint(*foffs)));
|
||||
DBUG_LOG("ib_merge_sort",
|
||||
reinterpret_cast<const void*>(b) << ',' <<
|
||||
reinterpret_cast<const void*>(block) <<
|
||||
",fd=" << fd << ',' << *foffs);
|
||||
|
||||
if (b == &block[0]) {
|
||||
b+= ROW_MERGE_RESERVE_SIZE;
|
||||
|
@ -2937,10 +2917,9 @@ row_merge_blocks(
|
|||
ulint* offsets1;/* offsets of mrec1 */
|
||||
|
||||
DBUG_ENTER("row_merge_blocks");
|
||||
DBUG_PRINT("ib_merge_sort",
|
||||
("fd=%d,%lu+%lu to fd=%d,%lu",
|
||||
file->fd, ulint(*foffs0), ulint(*foffs1),
|
||||
of->fd, ulint(of->offset)));
|
||||
DBUG_LOG("ib_merge_sort",
|
||||
"fd=" << file->fd << ',' << *foffs0 << '+' << *foffs1
|
||||
<< " to fd=" << of->fd << ',' << of->offset);
|
||||
|
||||
heap = row_merge_heap_create(dup->index, &buf, &offsets0, &offsets1);
|
||||
|
||||
|
@ -3050,10 +3029,9 @@ row_merge_blocks_copy(
|
|||
ulint* offsets1;/* dummy offsets */
|
||||
|
||||
DBUG_ENTER("row_merge_blocks_copy");
|
||||
DBUG_PRINT("ib_merge_sort",
|
||||
("fd=%d,%lu to fd=%d,%lu",
|
||||
file->fd, ulint(foffs0),
|
||||
of->fd, ulint(of->offset)));
|
||||
DBUG_LOG("ib_merge_sort",
|
||||
"fd=" << file->fd << ',' << foffs0
|
||||
<< " to fd=" << of->fd << ',' << of->offset);
|
||||
|
||||
heap = row_merge_heap_create(index, &buf, &offsets0, &offsets1);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue