Commit bd52f1a2 authored by Marko Mäkelä's avatar Marko Mäkelä

Cleanup: Remove lock_number_of_rows_locked()

Let us access trx->lock.n_rec_locks directly.
parent 3dabe637
/***************************************************************************** /*****************************************************************************
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, 2020, MariaDB Corporation. Copyright (c) 2017, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under 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 the terms of the GNU General Public License as published by the Free Software
...@@ -534,16 +534,6 @@ void ...@@ -534,16 +534,6 @@ void
lock_print_info_all_transactions( lock_print_info_all_transactions(
/*=============================*/ /*=============================*/
FILE* file); /*!< in: file where to print */ FILE* file); /*!< in: file where to print */
/*********************************************************************//**
Return approximate number or record locks (bits set in the bitmap) for
this transaction. Since delete-marked records may be removed, the
record count will not be precise.
The caller must be holding lock_sys.mutex. */
ulint
lock_number_of_rows_locked(
/*=======================*/
const trx_lock_t* trx_lock) /*!< in: transaction locks */
MY_ATTRIBUTE((warn_unused_result));
/*********************************************************************//** /*********************************************************************//**
Return the number of table locks for a transaction. Return the number of table locks for a transaction.
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2018, MariaDB Corporation. Copyright (c) 2015, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under 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 the terms of the GNU General Public License as published by the Free Software
...@@ -515,6 +515,7 @@ lock_rec_set_nth_bit( ...@@ -515,6 +515,7 @@ lock_rec_set_nth_bit(
@return previous value of the bit */ @return previous value of the bit */
inline byte lock_rec_reset_nth_bit(lock_t* lock, ulint i) inline byte lock_rec_reset_nth_bit(lock_t* lock, ulint i)
{ {
lock_sys.mutex_assert_locked();
ut_ad(lock_get_type_low(lock) == LOCK_REC); ut_ad(lock_get_type_low(lock) == LOCK_REC);
ut_ad(i < lock->un_member.rec_lock.n_bits); ut_ad(i < lock->un_member.rec_lock.n_bits);
...@@ -524,8 +525,9 @@ inline byte lock_rec_reset_nth_bit(lock_t* lock, ulint i) ...@@ -524,8 +525,9 @@ inline byte lock_rec_reset_nth_bit(lock_t* lock, ulint i)
*b &= byte(~mask); *b &= byte(~mask);
if (bit != 0) { if (bit != 0) {
ut_ad(lock->trx->lock.n_rec_locks > 0); ut_d(auto n=)
--lock->trx->lock.n_rec_locks; lock->trx->lock.n_rec_locks--;
ut_ad(n);
} }
return(bit); return(bit);
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2007, 2014, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2007, 2014, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2018, 2020, MariaDB Corporation. Copyright (c) 2018, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under 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 the terms of the GNU General Public License as published by the Free Software
...@@ -91,6 +91,7 @@ lock_rec_set_nth_bit( ...@@ -91,6 +91,7 @@ lock_rec_set_nth_bit(
ulint byte_index; ulint byte_index;
ulint bit_index; ulint bit_index;
lock_sys.mutex_assert_locked();
ut_ad(lock); ut_ad(lock);
ut_ad(lock_get_type_low(lock) == LOCK_REC); ut_ad(lock_get_type_low(lock) == LOCK_REC);
ut_ad(i < lock->un_member.rec_lock.n_bits); ut_ad(i < lock->un_member.rec_lock.n_bits);
...@@ -106,7 +107,7 @@ lock_rec_set_nth_bit( ...@@ -106,7 +107,7 @@ lock_rec_set_nth_bit(
#if defined __GNUC__ && !defined __clang__ && __GNUC__ < 6 #if defined __GNUC__ && !defined __clang__ && __GNUC__ < 6
# pragma GCC diagnostic pop # pragma GCC diagnostic pop
#endif #endif
++lock->trx->lock.n_rec_locks; lock->trx->lock.n_rec_locks++;
} }
/*********************************************************************//** /*********************************************************************//**
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2007, 2015, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2007, 2015, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, 2020, MariaDB Corporation. Copyright (c) 2017, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under 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 the terms of the GNU General Public License as published by the Free Software
...@@ -138,7 +138,7 @@ struct i_s_trx_row_t { ...@@ -138,7 +138,7 @@ struct i_s_trx_row_t {
ulint trx_lock_memory_bytes; ulint trx_lock_memory_bytes;
/*!< mem_heap_get_size( /*!< mem_heap_get_size(
trx->lock_heap) */ trx->lock_heap) */
ulint trx_rows_locked;/*!< lock_number_of_rows_locked() */ ulint trx_rows_locked;/*!< trx_lock_t::n_rec_locks */
uintmax_t trx_rows_modified;/*!< trx_t::undo_no */ uintmax_t trx_rows_modified;/*!< trx_t::undo_no */
uint trx_isolation_level; uint trx_isolation_level;
/*!< trx_t::isolation_level */ /*!< trx_t::isolation_level */
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2020, MariaDB Corporation. Copyright (c) 2015, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under 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 the terms of the GNU General Public License as published by the Free Software
...@@ -245,7 +245,7 @@ trx_print_low( ...@@ -245,7 +245,7 @@ trx_print_low(
/*!< in: max query length to print, /*!< in: max query length to print,
or 0 to use the default max length */ or 0 to use the default max length */
ulint n_rec_locks, ulint n_rec_locks,
/*!< in: lock_number_of_rows_locked(&trx->lock) */ /*!< in: trx->lock.n_rec_locks */
ulint n_trx_locks, ulint n_trx_locks,
/*!< in: length of trx->lock.trx_locks */ /*!< in: length of trx->lock.trx_locks */
ulint heap_size); ulint heap_size);
...@@ -560,7 +560,8 @@ struct trx_lock_t { ...@@ -560,7 +560,8 @@ struct trx_lock_t {
mutex to prevent recursive deadlocks. mutex to prevent recursive deadlocks.
Protected by both the lock sys mutex Protected by both the lock sys mutex
and the trx_t::mutex. */ and the trx_t::mutex. */
ulint n_rec_locks; /*!< number of rec locks in this trx */ /** number of record locks; writes are protected by lock_sys.mutex */
ulint n_rec_locks;
}; };
/** Logical first modification time of a table in a transaction */ /** Logical first modification time of a table in a transaction */
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2014, 2020, MariaDB Corporation. Copyright (c) 2014, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under 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 the terms of the GNU General Public License as published by the Free Software
...@@ -1157,21 +1157,6 @@ lock_sec_rec_some_has_impl( ...@@ -1157,21 +1157,6 @@ lock_sec_rec_some_has_impl(
return(trx); return(trx);
} }
/*********************************************************************//**
Return approximate number or record locks (bits set in the bitmap) for
this transaction. Since delete-marked records may be removed, the
record count will not be precise.
The caller must be holding lock_sys.mutex. */
ulint
lock_number_of_rows_locked(
/*=======================*/
const trx_lock_t* trx_lock) /*!< in: transaction locks */
{
lock_sys.mutex_assert_locked();
return(trx_lock->n_rec_locks);
}
/*********************************************************************//** /*********************************************************************//**
Return the number of table locks for a transaction. Return the number of table locks for a transaction.
The caller must be holding lock_sys.mutex. */ The caller must be holding lock_sys.mutex. */
...@@ -5940,7 +5925,7 @@ DeadlockChecker::print(const trx_t* trx, ulint max_query_len) ...@@ -5940,7 +5925,7 @@ DeadlockChecker::print(const trx_t* trx, ulint max_query_len)
{ {
lock_sys.mutex_assert_locked(); lock_sys.mutex_assert_locked();
ulint n_rec_locks = lock_number_of_rows_locked(&trx->lock); ulint n_rec_locks = trx->lock.n_rec_locks;
ulint n_trx_locks = UT_LIST_GET_LEN(trx->lock.trx_locks); ulint n_trx_locks = UT_LIST_GET_LEN(trx->lock.trx_locks);
ulint heap_size = mem_heap_get_size(trx->lock.lock_heap); ulint heap_size = mem_heap_get_size(trx->lock.lock_heap);
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2016, 2020, MariaDB Corporation. Copyright (c) 2016, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under 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 the terms of the GNU General Public License as published by the Free Software
...@@ -705,7 +705,7 @@ row_ins_foreign_trx_print( ...@@ -705,7 +705,7 @@ row_ins_foreign_trx_print(
ut_ad(!srv_read_only_mode); ut_ad(!srv_read_only_mode);
lock_sys.mutex_lock(); lock_sys.mutex_lock();
n_rec_locks = lock_number_of_rows_locked(&trx->lock); n_rec_locks = trx->lock.n_rec_locks;
n_trx_locks = UT_LIST_GET_LEN(trx->lock.trx_locks); n_trx_locks = UT_LIST_GET_LEN(trx->lock.trx_locks);
heap_size = mem_heap_get_size(trx->lock.lock_heap); heap_size = mem_heap_get_size(trx->lock.lock_heap);
lock_sys.mutex_unlock(); lock_sys.mutex_unlock();
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2007, 2015, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2007, 2015, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, 2020, MariaDB Corporation. Copyright (c) 2017, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under 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 the terms of the GNU General Public License as published by the Free Software
...@@ -487,7 +487,7 @@ fill_trx_row( ...@@ -487,7 +487,7 @@ fill_trx_row(
row->trx_lock_memory_bytes = mem_heap_get_size(trx->lock.lock_heap); row->trx_lock_memory_bytes = mem_heap_get_size(trx->lock.lock_heap);
row->trx_rows_locked = lock_number_of_rows_locked(&trx->lock); row->trx_rows_locked = trx->lock.n_rec_locks;
row->trx_rows_modified = trx->undo_no; row->trx_rows_modified = trx->undo_no;
......
...@@ -1761,7 +1761,7 @@ trx_print_low( ...@@ -1761,7 +1761,7 @@ trx_print_low(
/*!< in: max query length to print, /*!< in: max query length to print,
or 0 to use the default max length */ or 0 to use the default max length */
ulint n_rec_locks, ulint n_rec_locks,
/*!< in: lock_number_of_rows_locked(&trx->lock) */ /*!< in: trx->lock.n_rec_locks */
ulint n_trx_locks, ulint n_trx_locks,
/*!< in: length of trx->lock.trx_locks */ /*!< in: length of trx->lock.trx_locks */
ulint heap_size) ulint heap_size)
...@@ -1872,7 +1872,7 @@ trx_print_latched( ...@@ -1872,7 +1872,7 @@ trx_print_latched(
lock_sys.mutex_assert_locked(); lock_sys.mutex_assert_locked();
trx_print_low(f, trx, max_query_len, trx_print_low(f, trx, max_query_len,
lock_number_of_rows_locked(&trx->lock), trx->lock.n_rec_locks,
UT_LIST_GET_LEN(trx->lock.trx_locks), UT_LIST_GET_LEN(trx->lock.trx_locks),
mem_heap_get_size(trx->lock.lock_heap)); mem_heap_get_size(trx->lock.lock_heap));
} }
...@@ -1893,7 +1893,7 @@ trx_print( ...@@ -1893,7 +1893,7 @@ trx_print(
ulint heap_size; ulint heap_size;
lock_sys.mutex_lock(); lock_sys.mutex_lock();
n_rec_locks = lock_number_of_rows_locked(&trx->lock); n_rec_locks = trx->lock.n_rec_locks;
n_trx_locks = UT_LIST_GET_LEN(trx->lock.trx_locks); n_trx_locks = UT_LIST_GET_LEN(trx->lock.trx_locks);
heap_size = mem_heap_get_size(trx->lock.lock_heap); heap_size = mem_heap_get_size(trx->lock.lock_heap);
lock_sys.mutex_unlock(); lock_sys.mutex_unlock();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment