24#ifndef PFS_DATA_LOCK_H
25#define PFS_DATA_LOCK_H
33#include <unordered_set>
58 void set(
const char *
str,
size_t len) {
59 if ((len == 0) || (len >
max_len) || (
str ==
nullptr)) {
140 void set(
const char *requesting_lock_id,
size_t requesting_lock_id_length,
141 const char *blocking_lock_id,
size_t blocking_lock_id_length) {
142 if ((requesting_lock_id_length == 0) ||
143 (requesting_lock_id_length >
max_len) ||
144 (requesting_lock_id ==
nullptr) || (blocking_lock_id_length == 0) ||
145 (blocking_lock_id_length >
max_len) || (blocking_lock_id ==
nullptr)) {
153 requesting_lock_id_length);
154 if (requesting_lock_id_length <
max_len) {
156 max_len - requesting_lock_id_length);
162 blocking_lock_id_length);
163 if (blocking_lock_id_length <
max_len) {
165 max_len - blocking_lock_id_length);
233 size_t engine_length [[maybe_unused]]) {
238 size_t engine_lock_id_length [[maybe_unused]]) {
253 size_t table_schema_length [[maybe_unused]],
255 size_t table_name_length [[maybe_unused]],
256 const char *partition_name [[maybe_unused]],
257 size_t partition_name_length [[maybe_unused]],
258 const char *sub_partition_name [[maybe_unused]],
259 size_t sub_partition_name_length [[maybe_unused]]) {
274 size_t engine_lock_id_length)
override {
276 if (!
m_key_1.
match(engine_lock_id, engine_lock_id_length)) {
303 m_key_1(
"ENGINE_TRANSACTION_ID"),
371 m_key_4(
"SUBPARTITION_NAME") {}
375 bool match_object(
const char *table_schema,
size_t table_schema_length,
376 const char *
table_name,
size_t table_name_length,
377 const char *partition_name,
size_t partition_name_length,
378 const char *sub_partition_name,
379 size_t sub_partition_name_length)
override {
381 if (!
m_key_1.
match(table_schema, table_schema_length)) {
393 if (!
m_key_3.
match(partition_name, partition_name_length)) {
399 if (!
m_key_4.
match(sub_partition_name, sub_partition_name_length)) {
422 size_t engine_length [[maybe_unused]]) {
428 size_t engine_lock_id_length
435 size_t engine_lock_id_length
470 m_key_1(
"REQUESTING_ENGINE_LOCK_ID"),
476 size_t engine_lock_id_length)
override {
478 if (!
m_key_1.
match(engine_lock_id, engine_lock_id_length)) {
506 m_key_1(
"BLOCKING_ENGINE_LOCK_ID"),
512 size_t engine_lock_id_length)
override {
514 if (!
m_key_1.
match(engine_lock_id, engine_lock_id_length)) {
542 m_key_1(
"REQUESTING_ENGINE_TRANSACTION_ID"),
548 ulonglong engine_transaction_id)
override {
578 m_key_1(
"BLOCKING_ENGINE_TRANSACTION_ID"),
613 m_key_1(
"REQUESTING_THREAD_ID"),
614 m_key_2(
"REQUESTING_EVENT_ID") {}
646 m_key_2(
"BLOCKING_EVENT_ID") {}
689 typedef std::unordered_set<std::string, std::hash<std::string>,
690 std::equal_to<std::string>,
707 std::pair<set_type::iterator, bool> ret;
710 return (*ret.first).data();
724 const char **cached_ptr,
725 size_t *cached_length)
override;
727 bool accept_engine(
const char *engine,
size_t engine_length)
override;
729 size_t engine_lock_id_length)
override;
733 bool accept_object(
const char *table_schema,
size_t table_schema_length,
734 const char *
table_name,
size_t table_name_length,
735 const char *partition_name,
size_t partition_name_length,
736 const char *sub_partition_name,
737 size_t sub_partition_name_length)
override;
739 void add_lock_row(
const char *engine,
size_t engine_length,
740 const char *engine_lock_id,
size_t engine_lock_id_length,
742 ulonglong event_id,
const char *table_schema,
743 size_t table_schema_length,
const char *
table_name,
744 size_t table_name_length,
const char *partition_name,
745 size_t partition_name_length,
746 const char *sub_partition_name,
747 size_t sub_partition_name_length,
const char *index_name,
748 size_t index_name_length,
const void *identity,
749 const char *
lock_mode,
const char *lock_type,
750 const char *lock_status,
const char *lock_data)
override;
768 std::vector<row_data_lock, PFS_data_container_allocator<row_data_lock>>
783 bool accept_engine(
const char *engine,
size_t engine_length)
override;
785 size_t engine_lock_id_length)
override;
787 size_t engine_lock_id_length)
override;
796 const char *engine,
size_t engine_length,
797 const char *requesting_engine_lock_id,
798 size_t requesting_engine_lock_id_length,
800 ulonglong requesting_event_id,
const void *requesting_identity,
801 const char *blocking_engine_lock_id,
802 size_t blocking_engine_lock_id_length,
ulonglong blocking_transaction_id,
804 const void *blocking_identity)
override;
Definition: pfs_data_lock.h:687
void clear()
Definition: pfs_data_lock.h:713
const char * cache_data(const char *ptr, size_t length)
Definition: pfs_data_lock.h:700
set_type m_set
Definition: pfs_data_lock.h:694
PFS_data_cache()
Definition: pfs_data_lock.h:697
~PFS_data_cache()
Definition: pfs_data_lock.h:698
std::unordered_set< std::string, std::hash< std::string >, std::equal_to< std::string >, PFS_data_container_allocator< std::string > > set_type
Definition: pfs_data_lock.h:692
Definition: pfs_data_lock.h:673
constexpr PFS_data_container_allocator(const PFS_data_container_allocator< U > &u) noexcept
Definition: pfs_data_lock.h:682
PFS_data_container_allocator(const PFS_data_container_allocator &other)
Definition: pfs_data_lock.h:678
PFS_data_container_allocator()
Definition: pfs_data_lock.h:675
Definition: pfs_data_lock.h:716
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.
Definition: pfs_data_lock.cc:200
std::vector< row_data_lock, PFS_data_container_allocator< row_data_lock > > m_rows
Definition: pfs_data_lock.h:769
PFS_data_lock_container()
Definition: pfs_data_lock.cc:186
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.
Definition: pfs_data_lock.cc:249
~PFS_data_lock_container() override
bool accept_thread_id_event_id(ulonglong thread_id, ulonglong event_id) override
Check if the container accepts data for a particular event.
Definition: pfs_data_lock.cc:264
bool accept_engine(const char *engine, size_t engine_length) override
Check if the container accepts data for a particular engine.
Definition: pfs_data_lock.cc:241
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.
Definition: pfs_data_lock.cc:286
size_t m_logical_row_index
Definition: pfs_data_lock.h:767
bool accept_transaction_id(ulonglong transaction_id) override
Check if the container accepts data for a particular transaction.
Definition: pfs_data_lock.cc:257
void set_filter(PFS_index_data_locks *filter)
Definition: pfs_data_lock.h:764
const char * cache_string(const char *string) override
Add a string to the container cache.
Definition: pfs_data_lock.cc:191
void clear()
Clear the container.
Definition: pfs_data_lock.cc:336
PFS_index_data_locks * m_filter
Definition: pfs_data_lock.h:771
const char * cache_data(const char *ptr, size_t length) override
Add binary data to the container cache.
Definition: pfs_data_lock.cc:195
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.
Definition: pfs_data_lock.cc:272
row_data_lock * get_row(size_t index)
Definition: pfs_data_lock.cc:350
PFS_data_cache m_cache
Definition: pfs_data_lock.h:770
void shrink()
Shrink the container.
Definition: pfs_data_lock.cc:342
Definition: pfs_data_lock.h:775
void clear()
Clear the container.
Definition: pfs_data_lock.cc:471
row_data_lock_wait * get_row(size_t index)
Definition: pfs_data_lock.cc:485
PFS_data_cache m_cache
Definition: pfs_data_lock.h:825
void set_filter(PFS_index_data_lock_waits *filter)
Definition: pfs_data_lock.h:818
~PFS_data_lock_wait_container() override
bool accept_requesting_thread_id_event_id(ulonglong thread_id, ulonglong event_id) override
Check if the container accepts data for a particular requesting event.
Definition: pfs_data_lock.cc:425
bool accept_blocking_lock_id(const char *engine_lock_id, size_t engine_lock_id_length) override
Check if the container accepts data for a particular blocking lock id.
Definition: pfs_data_lock.cc:400
PFS_data_lock_wait_container()
Definition: pfs_data_lock.cc:369
bool accept_requesting_transaction_id(ulonglong transaction_id) override
Check if the container accepts data for a particular requesting transaction id.
Definition: pfs_data_lock.cc:409
bool accept_requesting_lock_id(const char *engine_lock_id, size_t engine_lock_id_length) override
Check if the container accepts data for a particular requesting lock id.
Definition: pfs_data_lock.cc:391
const char * cache_string(const char *string) override
Definition: pfs_data_lock.cc:374
bool accept_blocking_thread_id_event_id(ulonglong thread_id, ulonglong event_id) override
Check if the container accepts data for a particular blocking event.
Definition: pfs_data_lock.cc:433
bool accept_engine(const char *engine, size_t engine_length) override
Check if the container accepts data for a particular engine.
Definition: pfs_data_lock.cc:383
std::vector< row_data_lock_wait, PFS_data_container_allocator< row_data_lock_wait > > m_rows
Definition: pfs_data_lock.h:824
PFS_index_data_lock_waits * m_filter
Definition: pfs_data_lock.h:826
bool accept_blocking_transaction_id(ulonglong transaction_id) override
Check if the container accepts data for a particular blocking transaction id.
Definition: pfs_data_lock.cc:417
size_t m_logical_row_index
Definition: pfs_data_lock.h:821
void shrink()
Shrink the container.
Definition: pfs_data_lock.cc:477
void add_lock_wait_row(const char *engine, size_t engine_length, const char *requesting_engine_lock_id, size_t requesting_engine_lock_id_length, ulonglong requesting_transaction_id, ulonglong requesting_thread_id, ulonglong requesting_event_id, const void *requesting_identity, const char *blocking_engine_lock_id, size_t blocking_engine_lock_id_length, ulonglong blocking_transaction_id, ulonglong blocking_thread_id, ulonglong blocking_event_id, const void *blocking_identity) override
Add a row to table performance_schema.data_lock_waits.
Definition: pfs_data_lock.cc:441
const char * cache_data(const char *ptr, size_t length) override
Definition: pfs_data_lock.cc:378
uint m_fields
Definition: pfs_engine_table.h:296
Definition: pfs_engine_table.h:300
Definition: pfs_engine_table.h:268
Definition: pfs_data_lock.h:502
bool match_engine(const char *engine, size_t engine_length) override
Definition: pfs_data_lock.h:522
bool match_blocking_lock_id(const char *engine_lock_id, size_t engine_lock_id_length) override
Definition: pfs_data_lock.h:511
PFS_key_engine_name m_key_2
Definition: pfs_data_lock.h:534
PFS_key_engine_lock_id m_key_1
Definition: pfs_data_lock.h:533
~PFS_index_data_lock_waits_by_blocking_lock_id() override=default
PFS_index_data_lock_waits_by_blocking_lock_id()
Definition: pfs_data_lock.h:504
Definition: pfs_data_lock.h:641
PFS_key_event_id m_key_2
Definition: pfs_data_lock.h:669
PFS_key_thread_id m_key_1
Definition: pfs_data_lock.h:668
PFS_index_data_lock_waits_by_blocking_thread_id()
Definition: pfs_data_lock.h:643
~PFS_index_data_lock_waits_by_blocking_thread_id() override=default
bool match_blocking_thread_id_event_id(ulonglong thread_id, ulonglong event_id) override
Definition: pfs_data_lock.h:650
Definition: pfs_data_lock.h:574
PFS_key_engine_name m_key_2
Definition: pfs_data_lock.h:605
PFS_index_data_lock_waits_by_blocking_transaction_id()
Definition: pfs_data_lock.h:576
bool match_blocking_transaction_id(ulonglong engine_transaction_id) override
Definition: pfs_data_lock.h:583
bool match_engine(const char *engine, size_t engine_length) override
Definition: pfs_data_lock.h:593
~PFS_index_data_lock_waits_by_blocking_transaction_id() override=default
PFS_key_engine_transaction_id m_key_1
Definition: pfs_data_lock.h:604
Definition: pfs_data_lock.h:466
PFS_key_engine_name m_key_2
Definition: pfs_data_lock.h:498
PFS_index_data_lock_waits_by_requesting_lock_id()
Definition: pfs_data_lock.h:468
PFS_key_engine_lock_id m_key_1
Definition: pfs_data_lock.h:497
~PFS_index_data_lock_waits_by_requesting_lock_id() override=default
bool match_requesting_lock_id(const char *engine_lock_id, size_t engine_lock_id_length) override
Definition: pfs_data_lock.h:475
bool match_engine(const char *engine, size_t engine_length) override
Definition: pfs_data_lock.h:486
Definition: pfs_data_lock.h:609
PFS_key_thread_id m_key_1
Definition: pfs_data_lock.h:636
~PFS_index_data_lock_waits_by_requesting_thread_id() override=default
bool match_requesting_thread_id_event_id(ulonglong thread_id, ulonglong event_id) override
Definition: pfs_data_lock.h:618
PFS_key_event_id m_key_2
Definition: pfs_data_lock.h:637
PFS_index_data_lock_waits_by_requesting_thread_id()
Definition: pfs_data_lock.h:611
Definition: pfs_data_lock.h:538
PFS_key_engine_transaction_id m_key_1
Definition: pfs_data_lock.h:569
~PFS_index_data_lock_waits_by_requesting_transaction_id() override=default
bool match_requesting_transaction_id(ulonglong engine_transaction_id) override
Definition: pfs_data_lock.h:547
PFS_index_data_lock_waits_by_requesting_transaction_id()
Definition: pfs_data_lock.h:540
PFS_key_engine_name m_key_2
Definition: pfs_data_lock.h:570
bool match_engine(const char *engine, size_t engine_length) override
Definition: pfs_data_lock.h:558
Definition: pfs_data_lock.h:414
virtual bool match_blocking_lock_id(const char *engine_lock_id, size_t engine_lock_id_length)
Definition: pfs_data_lock.h:433
virtual bool match_requesting_thread_id_event_id(ulonglong thread_id, ulonglong event_id)
Definition: pfs_data_lock.h:450
~PFS_index_data_lock_waits() override=default
virtual bool match_blocking_transaction_id(ulonglong engine_transaction_id)
Definition: pfs_data_lock.h:445
PFS_index_data_lock_waits(PFS_engine_key *key_1, PFS_engine_key *key_2)
Definition: pfs_data_lock.h:416
virtual bool match_engine(const char *engine, size_t engine_length)
Definition: pfs_data_lock.h:421
virtual bool match_requesting_transaction_id(ulonglong engine_transaction_id)
Definition: pfs_data_lock.h:440
virtual bool match_blocking_thread_id_event_id(ulonglong thread_id, ulonglong event_id)
Definition: pfs_data_lock.h:457
virtual bool match_requesting_lock_id(const char *engine_lock_id, size_t engine_lock_id_length)
Definition: pfs_data_lock.h:426
Definition: pfs_data_lock.h:264
~PFS_index_data_locks_by_lock_id() override=default
PFS_key_engine_name m_key_2
Definition: pfs_data_lock.h:296
PFS_key_engine_lock_id m_key_1
Definition: pfs_data_lock.h:295
bool match_lock_id(const char *engine_lock_id, size_t engine_lock_id_length) override
Definition: pfs_data_lock.h:273
bool match_engine(const char *engine, size_t engine_length) override
Definition: pfs_data_lock.h:284
PFS_index_data_locks_by_lock_id()
Definition: pfs_data_lock.h:266
Definition: pfs_data_lock.h:364
bool match_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
Definition: pfs_data_lock.h:375
~PFS_index_data_locks_by_object() override=default
PFS_index_data_locks_by_object()
Definition: pfs_data_lock.h:366
PFS_key_object_name m_key_2
Definition: pfs_data_lock.h:409
PFS_key_object_schema m_key_1
Definition: pfs_data_lock.h:408
PFS_key_name m_key_4
Definition: pfs_data_lock.h:411
PFS_key_name m_key_3
Definition: pfs_data_lock.h:410
Definition: pfs_data_lock.h:333
PFS_index_data_locks_by_thread_id()
Definition: pfs_data_lock.h:335
PFS_key_thread_id m_key_1
Definition: pfs_data_lock.h:360
PFS_key_event_id m_key_2
Definition: pfs_data_lock.h:361
~PFS_index_data_locks_by_thread_id() override=default
bool match_thread_id_event_id(ulonglong thread_id, ulonglong event_id) override
Definition: pfs_data_lock.h:342
Definition: pfs_data_lock.h:299
bool match_engine(const char *engine, size_t engine_length) override
Definition: pfs_data_lock.h:318
PFS_index_data_locks_by_transaction_id()
Definition: pfs_data_lock.h:301
bool match_transaction_id(ulonglong engine_transaction_id) override
Definition: pfs_data_lock.h:308
PFS_key_engine_name m_key_2
Definition: pfs_data_lock.h:330
~PFS_index_data_locks_by_transaction_id() override=default
PFS_key_engine_transaction_id m_key_1
Definition: pfs_data_lock.h:329
Definition: pfs_data_lock.h:221
PFS_index_data_locks(PFS_engine_key *key_1, PFS_engine_key *key_2)
Definition: pfs_data_lock.h:223
virtual bool match_transaction_id(ulonglong engine_transaction_id)
Definition: pfs_data_lock.h:242
PFS_index_data_locks(PFS_engine_key *key_1, PFS_engine_key *key_2, PFS_engine_key *key_3, PFS_engine_key *key_4)
Definition: pfs_data_lock.h:226
~PFS_index_data_locks() override=default
virtual bool match_thread_id_event_id(ulonglong thread_id, ulonglong event_id)
Definition: pfs_data_lock.h:247
virtual bool match_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)
Definition: pfs_data_lock.h:252
virtual bool match_engine(const char *engine, size_t engine_length)
Definition: pfs_data_lock.h:232
virtual bool match_lock_id(const char *engine_lock_id, size_t engine_lock_id_length)
Definition: pfs_data_lock.h:237
Definition: table_helper.h:1580
bool match(const char *engine_lock_id, size_t length)
Definition: table_helper.cc:2205
Definition: table_helper.h:1570
bool match(const char *engine_name, size_t length)
Definition: table_helper.cc:2201
Definition: table_helper.h:1317
bool match(ulonglong engine_transaction_id)
Definition: table_helper.cc:1891
Definition: table_helper.h:1294
bool match(ulonglong event_id)
Definition: table_helper.cc:1856
Definition: table_helper.h:1535
bool match(const LEX_CSTRING *name)
Definition: table_helper.cc:2155
Definition: table_helper.h:1637
bool match(const PFS_table_share *share)
Definition: table_helper.cc:2412
Definition: table_helper.h:1622
bool match(const PFS_table_share *share)
Definition: table_helper.cc:2374
Definition: table_helper.h:1278
bool match(ulonglong thread_id)
Definition: table_helper.cc:1795
Server interface, row lock container.
Definition: psi_data_lock.h:117
Definition: psi_data_lock.h:220
PSI_identifier
Definition: psi_data_lock.h:97
lock_mode
Definition: lock0types.h:52
Header for compiler-dependent features.
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
static my_thread_id thread_id
Definition: my_thr_init.cc:63
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1052
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
const char * table_name
Definition: rules_table_service.cc:56
std::vector< T, ut::allocator< T > > vector
Specialization of vector which uses allocator.
Definition: ut0new.h:2874
PFS_builtin_memory_class builtin_memory_data_container
Definition: pfs_builtin_memory.cc:125
Performance schema instruments metadata (declarations).
Performance schema instrumentation interface.
required string key
Definition: replication_asynchronous_connection_failover.proto:60
Row fragment for columns OBJECT_TYPE, SCHEMA_NAME, OBJECT_NAME, INDEX_NAME.
Definition: table_helper.h:678
Definition: pfs_std_allocator.h:38
Definition: pfs_data_lock.h:116
pk_pos_data_lock_wait()
Definition: pfs_data_lock.h:120
size_t get_blocking_lock_id_length() const
Definition: pfs_data_lock.h:181
void reset()
Definition: pfs_data_lock.h:122
size_t m_blocking_engine_lock_id_length
Definition: pfs_data_lock.h:191
size_t get_requesting_lock_id_length() const
Definition: pfs_data_lock.h:175
char m_requesting_engine_lock_id[max_len]
Column REQUESTING_ENGINE_LOCK_ID.
Definition: pfs_data_lock.h:187
const char * get_blocking_lock_id() const
Definition: pfs_data_lock.h:179
void set(const pk_pos_data_lock_wait *other)
Definition: pfs_data_lock.h:130
const char * get_requesting_lock_id() const
Definition: pfs_data_lock.h:171
void set(const char *requesting_lock_id, size_t requesting_lock_id_length, const char *blocking_lock_id, size_t blocking_lock_id_length)
Definition: pfs_data_lock.h:140
static constexpr size_t max_len
Definition: pfs_data_lock.h:118
size_t m_requesting_engine_lock_id_length
Definition: pfs_data_lock.h:188
char m_blocking_engine_lock_id[max_len]
Column BLOCKING_ENGINE_LOCK_ID.
Definition: pfs_data_lock.h:190
Definition: pfs_data_lock.h:42
char m_engine_lock_id[max_len]
Column ENGINE_LOCK_ID.
Definition: pfs_data_lock.h:77
void set(const char *str, size_t len)
Definition: pfs_data_lock.h:58
void reset()
Definition: pfs_data_lock.h:48
size_t m_engine_lock_id_length
Definition: pfs_data_lock.h:78
const char * str() const
Definition: pfs_data_lock.h:72
void set(const pk_pos_data_lock *other)
Definition: pfs_data_lock.h:53
pk_pos_data_lock()
Definition: pfs_data_lock.h:46
size_t length() const
Definition: pfs_data_lock.h:73
static constexpr size_t max_len
Definition: pfs_data_lock.h:44
A row of table PERFORMANCE_SCHEMA.DATA_LOCK_WAITS.
Definition: pfs_data_lock.h:198
pk_pos_data_lock_wait m_hidden_pk
Engine (REQUESTING_LOCK_ID, BLOCKING_LOCK_ID) key.
Definition: pfs_data_lock.h:202
const void * m_requesting_identity
Column REQUESTING_OBJECT_INSTANCE_BEGIN.
Definition: pfs_data_lock.h:210
ulonglong m_blocking_thread_id
Column BLOCKING_THREAD_ID.
Definition: pfs_data_lock.h:214
ulonglong m_requesting_event_id
Column REQUESTING_EVENT_ID.
Definition: pfs_data_lock.h:208
ulonglong m_blocking_event_id
Column BLOCKING_EVENT_ID.
Definition: pfs_data_lock.h:216
ulonglong m_requesting_thread_id
Column REQUESTING_THREAD_ID.
Definition: pfs_data_lock.h:206
const void * m_blocking_identity
Column BLOCKING_OBJECT_INSTANCE_BEGIN.
Definition: pfs_data_lock.h:218
ulonglong m_requesting_transaction_id
Column REQUESTING_ENGINE_TRANSACTION_ID.
Definition: pfs_data_lock.h:204
const char * m_engine
Column ENGINE.
Definition: pfs_data_lock.h:200
ulonglong m_blocking_transaction_id
Column BLOCKING_ENGINE_TRANSACTION_ID.
Definition: pfs_data_lock.h:212
A row of table PERFORMANCE_SCHEMA.DATA_LOCKS.
Definition: pfs_data_lock.h:85
const char * m_lock_status
Column LOCK_STATUS.
Definition: pfs_data_lock.h:111
const void * m_identity
Column OBJECT_INSTANCE_BEGIN.
Definition: pfs_data_lock.h:105
ulonglong m_transaction_id
Column ENGINE_TRANSACTION_ID.
Definition: pfs_data_lock.h:91
size_t m_sub_partition_name_length
Definition: pfs_data_lock.h:103
ulonglong m_thread_id
Column THREAD_ID.
Definition: pfs_data_lock.h:93
const char * m_lock_data
Column LOCK_DATA.
Definition: pfs_data_lock.h:113
const char * m_lock_mode
Column LOCK_MODE.
Definition: pfs_data_lock.h:107
const char * m_engine
Column ENGINE.
Definition: pfs_data_lock.h:87
const char * m_lock_type
Column LOCK_TYPE.
Definition: pfs_data_lock.h:109
PFS_index_view_row m_index_row
Columns OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, INDEX_NAME.
Definition: pfs_data_lock.h:97
ulonglong m_event_id
Column EVENT_ID.
Definition: pfs_data_lock.h:95
pk_pos_data_lock m_hidden_pk
Column ENGINE_LOCK_ID.
Definition: pfs_data_lock.h:89
size_t m_partition_name_length
Definition: pfs_data_lock.h:100
const char * m_partition_name
Column PARTITION_NAME.
Definition: pfs_data_lock.h:99
const char * m_sub_partition_name
Column SUB_PARTITION_NAME.
Definition: pfs_data_lock.h:102
Helpers to implement a performance schema table.