|
| PFS_data_lock_container () |
|
| ~PFS_data_lock_container () override |
|
const char * | cache_string (const char *string) override |
| Add a string to the container cache. More...
|
|
const char * | cache_data (const char *ptr, size_t length) override |
| Add binary data to the container cache. More...
|
|
void | cache_identifier (PSI_identifier kind, const char *str, size_t length, const char **cached_ptr, size_t *cached_length) override |
| Add an identifier in the container cache. More...
|
|
bool | accept_engine (const char *engine, size_t engine_length) override |
| Check if the container accepts data for a particular engine. More...
|
|
bool | accept_lock_id (const char *engine_lock_id, size_t engine_lock_id_length) override |
| Check if the container accepts data for a particular lock. More...
|
|
bool | accept_transaction_id (ulonglong transaction_id) override |
| Check if the container accepts data for a particular transaction. More...
|
|
bool | accept_thread_id_event_id (ulonglong thread_id, ulonglong event_id) override |
| Check if the container accepts data for a particular event. More...
|
|
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) override |
| Check if the container accepts data for a particular object. More...
|
|
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) override |
| Add a row to table performance_schema.data_locks. More...
|
|
void | clear () |
| Clear the container. More...
|
|
void | shrink () |
| Shrink the container. More...
|
|
row_data_lock * | get_row (size_t index) |
|
void | set_filter (PFS_index_data_locks *filter) |
|
| PSI_server_data_lock_container ()=default |
|
virtual | ~PSI_server_data_lock_container ()=default |
|
void PFS_data_lock_container::cache_identifier |
( |
PSI_identifier |
kind, |
|
|
const char * |
str, |
|
|
size_t |
length, |
|
|
const char ** |
cached_ptr, |
|
|
size_t * |
cached_length |
|
) |
| |
|
overridevirtual |
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.
- Parameters
-
[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 |
Implements PSI_server_data_lock_container.
const char * PFS_data_lock_container::cache_string |
( |
const char * |
string | ) |
|
|
overridevirtual |
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.
Implements PSI_server_data_lock_container.