MySQL 9.1.0
Source Code Documentation
|
Inspect data locks for the innodb storage engine. More...
Public Member Functions | |
bool | scan (PSI_server_data_lock_container *container, bool with_lock_data) override |
Scan for more data locks. More... | |
void | fetch (PSI_server_data_lock_container *container, const char *engine_lock_id, size_t engine_lock_id_length, bool with_lock_data) override |
Fetch a given data lock. More... | |
Public Member Functions inherited from PSI_engine_data_lock_iterator | |
PSI_engine_data_lock_iterator ()=default | |
virtual | ~PSI_engine_data_lock_iterator ()=default |
Static Private Member Functions | |
static size_t | report (std::unordered_map< const char *, parsed_table_path > &parsed_paths, PSI_server_data_lock_container &container, const lock_t &lock, bool with_lock_data, bool with_filter, ulint filter_heap_no=ULINT_UNDEFINED) |
For a given lock it will inform container about each lock request it represents (which can be more than one in case of LOCK_RECORD as there can be multiple lock requests differing only by heap_no compressed into single lock object), subject to filtering defined for the container, and optionally by filter_heap_no if with_filter is true. More... | |
Private Attributes | |
All_locks_iterator | m_all_locks_iterator |
Inspect data locks for the innodb storage engine.
|
overridevirtual |
Fetch a given data lock.
container | The container to fill |
engine_lock_id | The lock id to search |
engine_lock_id_length | Lock id length |
with_lock_data | True if column LOCK_DATA is required. |
Implements PSI_engine_data_lock_iterator.
|
staticprivate |
For a given lock it will inform container about each lock request it represents (which can be more than one in case of LOCK_RECORD as there can be multiple lock requests differing only by heap_no compressed into single lock object), subject to filtering defined for the container, and optionally by filter_heap_no if with_filter is true.
The with_filter is used to fetch just a lock request, the one specified by its heap_no. Please note, that there is no guarantee that the lock with this heap no is still in the lock sys.
[in,out] | parsed_paths | The cache of table path parsing results |
[in,out] | container | The container to fill. Serves as both visitor and filter |
[in] | lock | The lock to inspect and report upon |
[in] | with_lock_data | True if column LOCK_DATA is required. |
[in] | with_filter | If true then filter_heap_no has to be passed, and means that only the lock request for that heap number (if still present and matches the container's filters) should be reported to the container. If false then all lock requests represented for this lock are considered for reporting. |
[in] | filter_heap_no | if with_filter is true it further narrows the set of reported lock requests to just the one with given immutable id. |
|
overridevirtual |
Scan for more data locks.
container | The container to fill |
with_lock_data | True if column LOCK_DATA is required. |
Implements PSI_engine_data_lock_iterator.
|
private |