23#ifndef PFS_ENGINE_TABLE_H
24#define PFS_ENGINE_TABLE_H
76 unsigned char *new_buf,
Field **fields);
88 virtual int rnd_init(
bool scan [[maybe_unused]]) {
return 0; }
94 bool sorted [[maybe_unused]]) {
104 uint key_len [[maybe_unused]]) {
151 unsigned char *new_buf,
Field **fields);
186 unsigned char *
buf,
Field **fields);
210 bool &isnull,
uchar *value);
213 bool &isnull,
short *value);
216 bool &isnull, ushort *value);
219 bool &isnull,
long *value);
222 bool &isnull, ulong *value);
228 bool &isnull, ulong *value);
241 bool &isnull,
char *
buffer,
243 uint buffer_capacity);
246 bool &isnull,
char *
buffer,
248 uint buffer_capacity);
366 Field **fields)
const;
438 bool any_combination_will_do)
const override;
455 bool any_combination_will_do)
const override;
472 bool any_combination_will_do)
const override;
489 bool any_combination_will_do)
const override;
505 bool any_combination_will_do)
const override;
520 bool any_combination_will_do)
const override;
535 bool any_combination_will_do)
const override;
550 bool any_combination_will_do)
const override;
ACL_internal_access_result
Definition: auth_common.h:83
Per internal table ACL access rules.
Definition: auth_common.h:105
uint8 type
Definition: key.h:72
Definition: sql_list.h:433
A class to keep list of table shares for non-native performance schema tables i.e.
Definition: pfs_engine_table.h:398
void lock_share_list()
Definition: pfs_engine_table.h:406
mysql_mutex_t LOCK_pfs_share_list
Definition: pfs_engine_table.h:421
void add_share(PFS_engine_table_share *share)
Definition: pfs_engine_table.h:410
PFS_dynamic_table_shares()=default
std::vector< PFS_engine_table_share * > shares_vector
Definition: pfs_engine_table.h:420
void unlock_share_list()
Definition: pfs_engine_table.h:408
Privileges for editable tables.
Definition: pfs_engine_table.h:482
PFS_editable_acl()=default
~PFS_editable_acl() override=default
Definition: pfs_engine_table.h:283
uint m_fields
Definition: pfs_engine_table.h:295
KEY * m_key_info
Definition: pfs_engine_table.h:296
void set_key_info(KEY *key_info)
Definition: pfs_engine_table.h:289
PFS_engine_index_abstract()=default
virtual ~PFS_engine_index_abstract()=default
virtual void read_key(const uchar *key, uint key_len, enum ha_rkey_function find_flag)=0
Definition: pfs_engine_table.h:299
PFS_engine_index(PFS_engine_key *key_1, PFS_engine_key *key_2, PFS_engine_key *key_3, PFS_engine_key *key_4)
Definition: pfs_engine_table.h:323
PFS_engine_key * m_key_ptr_2
Definition: pfs_engine_table.h:346
PFS_engine_key * m_key_ptr_4
Definition: pfs_engine_table.h:348
PFS_engine_index(PFS_engine_key *key_1, PFS_engine_key *key_2)
Definition: pfs_engine_table.h:308
~PFS_engine_index() override=default
PFS_engine_index(PFS_engine_key *key_1, PFS_engine_key *key_2, PFS_engine_key *key_3, PFS_engine_key *key_4, PFS_engine_key *key_5)
Definition: pfs_engine_table.h:331
PFS_engine_key * m_key_ptr_5
Definition: pfs_engine_table.h:349
PFS_engine_index(PFS_engine_key *key_1, PFS_engine_key *key_2, PFS_engine_key *key_3)
Definition: pfs_engine_table.h:315
PFS_engine_key * m_key_ptr_3
Definition: pfs_engine_table.h:347
PFS_engine_key * m_key_ptr_1
Definition: pfs_engine_table.h:345
PFS_engine_index(PFS_engine_key *key_1)
Definition: pfs_engine_table.h:301
Definition: pfs_engine_table.h:267
virtual ~PFS_engine_key()=default
virtual void read(PFS_key_reader &reader, enum ha_rkey_function find_flag)=0
const char * m_name
Definition: pfs_engine_table.h:276
PFS_engine_key(const char *name)
Definition: pfs_engine_table.h:269
bool m_is_null
Definition: pfs_engine_table.h:280
enum ha_rkey_function m_find_flag
Definition: pfs_engine_table.h:279
An abstract PERFORMANCE_SCHEMA table.
Definition: pfs_engine_table.h:69
virtual int index_prev()
Definition: pfs_engine_table.h:112
virtual int read_row_values(TABLE *table, unsigned char *buf, Field **fields, bool read_all)=0
Read the current row values.
PFS_engine_index_abstract * m_index
Current index.
Definition: pfs_engine_table.h:179
virtual int rnd_init(bool scan)
Initialize table scan.
Definition: pfs_engine_table.h:88
virtual int rnd_pos(const void *pos)=0
Fetch a row by position.
virtual int rnd_next()=0
Fetch the next row in this cursor.
virtual void reset_position()=0
Reset the cursor position to the beginning of the table.
virtual int index_last()
Definition: pfs_engine_table.h:116
time_normalizer * m_normalizer
Current normalizer.
Definition: pfs_engine_table.h:177
virtual int index_init(uint idx, bool sorted)
Definition: pfs_engine_table.h:93
void * m_pos_ptr
Opaque pointer to the m_pos position of this cursor.
Definition: pfs_engine_table.h:175
virtual int index_next()
Find key in index, read record.
Definition: pfs_engine_table.h:109
virtual ~PFS_engine_table()=default
Destructor.
virtual int index_first()
Definition: pfs_engine_table.h:114
virtual int index_read_last(KEY *key_infos, const uchar *key, uint key_len)
Definition: pfs_engine_table.h:102
const PFS_engine_table_share * m_share_ptr
Table share.
Definition: pfs_engine_table.h:173
PFS_engine_table(const PFS_engine_table_share *share, void *pos)
Constructor.
Definition: pfs_engine_table.h:166
Privileges for read only tables.
Definition: pfs_engine_table.h:431
~PFS_readonly_acl() override=default
PFS_readonly_acl()=default
Privileges for readable processlist tables.
Definition: pfs_engine_table.h:544
~PFS_readonly_processlist_acl() override=default
PFS_readonly_processlist_acl()=default
Privileges for world readable tables.
Definition: pfs_engine_table.h:514
~PFS_readonly_world_acl() override=default
PFS_readonly_world_acl()=default
Privileges for truncatable tables.
Definition: pfs_engine_table.h:448
PFS_truncatable_acl()=default
~PFS_truncatable_acl() override=default
Privileges for world readable truncatable tables.
Definition: pfs_engine_table.h:529
PFS_truncatable_world_acl()=default
~PFS_truncatable_world_acl() override=default
Privileges for unknown tables.
Definition: pfs_engine_table.h:498
PFS_unknown_acl()=default
~PFS_unknown_acl() override=default
Privileges for updatable tables.
Definition: pfs_engine_table.h:465
~PFS_updatable_acl() override=default
PFS_updatable_acl()=default
Class to hold information regarding a table to be created on behalf of a plugin.
Definition: plugin_table.h:39
#define mysql_mutex_lock(M)
Definition: mysql_mutex.h:49
#define mysql_mutex_unlock(M)
Definition: mysql_mutex.h:56
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
static const std::string dec("DECRYPTION")
#define mysql_mutex_assert_owner(M)
Wrapper, to use safe_mutex_assert_owner with instrumented mutexes.
Definition: mysql_mutex.h:111
mysql_service_pfs_plugin_table_v1_t * pfs_table
Definition: log0pfs.cc:46
This file includes constants used by all storage engines.
ha_base_keytype
Definition: my_base.h:438
#define HA_ERR_UNSUPPORTED
unsupported extension used
Definition: my_base.h:853
ha_rkey_function
Definition: my_base.h:77
my_off_t ha_rows
Definition: my_base.h:1139
Header for compiler-dependent features.
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
unsigned char uchar
Definition: my_inttypes.h:51
long long int longlong
Definition: my_inttypes.h:54
ABI for instrumented mutexes.
Definition: buf0block_hint.cc:29
PT & ref(PT *tp)
Definition: tablespace_impl.cc:358
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:419
const char * table_name
Definition: rules_table_service.cc:55
Instrumentation helpers for mutexes.
required string key
Definition: replication_asynchronous_connection_failover.proto:59
case opt name
Definition: sslopt-case.h:32
Performance schema instrumentation (declarations).
Position of a double cursor, for iterations using 2 nested loops.
Definition: pfs_engine_table.h:592
void set_after(const PFS_double_index *other)
Set this index after a given position.
Definition: pfs_engine_table.h:627
void set_at(uint index_1, uint index_2)
Set this index at a given position.
Definition: pfs_engine_table.h:609
PFS_double_index(uint index_1, uint index_2)
Constructor.
Definition: pfs_engine_table.h:603
uint m_index_1
Outer index.
Definition: pfs_engine_table.h:594
void set_at(const PFS_double_index *other)
Set this index at a given position.
Definition: pfs_engine_table.h:618
uint m_index_2
Current index within index_1.
Definition: pfs_engine_table.h:596
A structure to keep callback functions to be implemented by plugin/component.
Definition: pfs_plugin_table_service.h:412
A PERFORMANCE_SCHEMA table share.
Definition: pfs_engine_table.h:357
PFS_engine_table_proxy m_st_table
Definition: pfs_engine_table.h:387
std::atomic< int > m_ref_count
Definition: pfs_engine_table.h:389
bool m_in_purgatory
Definition: pfs_engine_table.h:391
const Plugin_table * m_table_def
Table definition.
Definition: pfs_engine_table.h:382
const ACL_internal_table_access * m_acl
Table Access Control List.
Definition: pfs_engine_table.h:368
pfs_write_row_t m_write_row
Write row function.
Definition: pfs_engine_table.h:372
uint m_ref_length
Length of the m_pos position structure.
Definition: pfs_engine_table.h:378
pfs_delete_all_rows_t m_delete_all_rows
Delete all rows function.
Definition: pfs_engine_table.h:374
pfs_get_row_count_t m_get_row_count
Get rows count function.
Definition: pfs_engine_table.h:376
THR_LOCK * m_thr_lock_ptr
The lock, stored on behalf of the SQL layer.
Definition: pfs_engine_table.h:380
pfs_open_table_t m_open_table
Open table function.
Definition: pfs_engine_table.h:370
bool m_perpetual
Table is available even if the Performance Schema is disabled.
Definition: pfs_engine_table.h:384
PFS_key_reader: Convert key into internal format.
Definition: pfs_engine_table.h:195
uint m_parts_found
Definition: pfs_engine_table.h:264
PFS_key_reader(const KEY *key_info, const uchar *key, uint key_len)
Definition: pfs_engine_table.h:196
const KEY_PART_INFO * m_remaining_key_part_info
Definition: pfs_engine_table.h:259
ha_base_keytype get_key_type()
Definition: pfs_engine_table.h:250
const KEY * m_key_info
Definition: pfs_engine_table.h:255
uint m_remaining_key_len
Definition: pfs_engine_table.h:261
const uchar * m_remaining_key
Definition: pfs_engine_table.h:260
const uchar * m_key
Definition: pfs_engine_table.h:257
uint m_key_len
Definition: pfs_engine_table.h:258
const KEY_PART_INFO * m_key_part_info
Definition: pfs_engine_table.h:256
Position of a cursor, for simple iterations.
Definition: pfs_engine_table.h:557
PFS_simple_index(uint index)
Constructor.
Definition: pfs_engine_table.h:565
void set_at(const PFS_simple_index *other)
Set this index at a given position.
Definition: pfs_engine_table.h:577
void set_at(uint index)
Set this index at a given position.
Definition: pfs_engine_table.h:571
void set_after(const PFS_simple_index *other)
Set this index after a given position.
Definition: pfs_engine_table.h:583
void next()
Set this index to the next record.
Definition: pfs_engine_table.h:588
uint m_index
Current row index.
Definition: pfs_engine_table.h:559
Position of a triple cursor, for iterations using 3 nested loops.
Definition: pfs_engine_table.h:634
void set_at(const PFS_triple_index *other)
Set this index at a given position.
Definition: pfs_engine_table.h:664
uint m_index_3
Current index within index_2.
Definition: pfs_engine_table.h:640
uint m_index_2
Current index within index_1.
Definition: pfs_engine_table.h:638
PFS_triple_index(uint index_1, uint index_2, uint index_3)
Constructor.
Definition: pfs_engine_table.h:648
void set_after(const PFS_triple_index *other)
Set this index after a given position.
Definition: pfs_engine_table.h:674
uint m_index_1
Outer index.
Definition: pfs_engine_table.h:636
void set_at(uint index_1, uint index_2, uint index_3)
Set this index at a given position.
Definition: pfs_engine_table.h:654
Definition: thr_lock.h:138
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49
A time normalizer.
Definition: pfs_timer.h:118
unsigned int uint
Definition: uca9-dump.cc:74