MySQL 8.0.39
Source Code Documentation
|
Server interface, row lock container. More...
#include <psi_data_lock.h>
Public Member Functions | |
PSI_server_data_lock_container ()=default | |
virtual | ~PSI_server_data_lock_container ()=default |
virtual const char * | cache_string (const char *string)=0 |
Add a string to the container cache. More... | |
virtual const char * | cache_data (const char *ptr, size_t length)=0 |
Add binary data to the container cache. More... | |
virtual void | cache_identifier (PSI_identifier kind, const char *str, size_t length, const char **cached_ptr, size_t *cached_length)=0 |
Add an identifier in the container cache. More... | |
virtual bool | accept_engine (const char *engine, size_t engine_length)=0 |
Check if the container accepts data for a particular engine. More... | |
virtual bool | accept_lock_id (const char *engine_lock_id, size_t engine_lock_id_length)=0 |
Check if the container accepts data for a particular lock. More... | |
virtual bool | accept_transaction_id (ulonglong transaction_id)=0 |
Check if the container accepts data for a particular transaction. More... | |
virtual bool | accept_thread_id_event_id (ulonglong thread_id, ulonglong event_id)=0 |
Check if the container accepts data for a particular event. More... | |
virtual bool | accept_object (const char *table_schema, size_t table_schema_length, const char *table_name, size_t table_name_length, const char *partition_name, size_t partition_name_length, const char *sub_partition_name, size_t sub_partition_name_length)=0 |
Check if the container accepts data for a particular object. More... | |
virtual void | add_lock_row (const char *engine, size_t engine_length, const char *engine_lock_id, size_t engine_lock_id_length, ulonglong transaction_id, ulonglong thread_id, ulonglong event_id, const char *table_schema, size_t table_schema_length, const char *table_name, size_t table_name_length, const char *partition_name, size_t partition_name_length, const char *sub_partition_name, size_t sub_partition_name_length, const char *index_name, size_t index_name_length, const void *identity, const char *lock_mode, const char *lock_type, const char *lock_status, const char *lock_data)=0 |
Add a row to table performance_schema.data_locks. More... | |
Server interface, row lock container.
This is the interface exposed
|
default |
|
virtualdefault |
|
pure virtual |
Check if the container accepts data for a particular engine.
This methods is used to prune data for queries like
Implemented in PFS_data_lock_container.
|
pure virtual |
Check if the container accepts data for a particular lock.
This methods is used to prune data for queries like
Implemented in PFS_data_lock_container.
|
pure virtual |
Check if the container accepts data for a particular object.
This methods is used to prune data for queries like
Implemented in PFS_data_lock_container.
|
pure virtual |
Check if the container accepts data for a particular event.
This methods is used to prune data for queries like
Implemented in PFS_data_lock_container.
|
pure virtual |
Check if the container accepts data for a particular transaction.
This methods is used to prune data for queries like
Implemented in PFS_data_lock_container.
|
pure virtual |
Add a row to table performance_schema.data_locks.
Implemented in PFS_data_lock_container.
|
pure virtual |
Add binary data to the container cache.
Implemented in PFS_data_lock_container.
|
pure virtual |
Add an identifier in the container cache.
Depending on the identifier kind, the string given may be normalized, to comply with lower_case_table_names, before adding the string into the cache. Beware that the normalized string length may differ from the input string length.
[in] | kind | Identifier kind, used for string normalization |
[in] | str | Identifier input string |
[in] | length | Identifier input string length |
[out] | cached_ptr | Cached, possibly normalized, identifier string |
[out] | cached_length | Cached identifier string length |
Implemented in PFS_data_lock_container.
|
pure virtual |
Add a string to the container cache.
Cached strings have the same life cycle as the data container, and are freed when the container is destroyed. Also, duplicated strings value are cached with the same copy, avoiding memory duplication. This is useful in particular to cache table schema or table names, which are duplicated a lot for different row locks on the same table.
Implemented in PFS_data_lock_container.