24#ifndef PFS_ENGINE_TABLE_H 
   25#define PFS_ENGINE_TABLE_H 
   77                 unsigned char *new_buf, 
Field **fields);
 
   89  virtual int rnd_init(
bool scan [[maybe_unused]]) { 
return 0; }
 
   95                         bool sorted [[maybe_unused]]) {
 
  105                              uint key_len [[maybe_unused]]) {
 
  152                                unsigned char *new_buf, 
Field **fields);
 
  187                               unsigned char *
buf, 
Field **fields);
 
  214                                   bool &isnull, 
short *
value);
 
  217                                    bool &isnull, ushort *
value);
 
  220                                   bool &isnull, 
long *
value);
 
  223                                    bool &isnull, ulong *
value);
 
  229                                   bool &isnull, ulong *
value);
 
  242                                          bool &isnull, 
char *
buffer,
 
  244                                          uint buffer_capacity);
 
  247                                       bool &isnull, 
char *
buffer,
 
  249                                       uint buffer_capacity);
 
  368                Field **fields) 
const;
 
  441                                   bool any_combination_will_do) 
const override;
 
  459                                   bool any_combination_will_do) 
const override;
 
  477                                   bool any_combination_will_do) 
const override;
 
  495                                   bool any_combination_will_do) 
const override;
 
  512                                   bool any_combination_will_do) 
const override;
 
  528                                   bool any_combination_will_do) 
const override;
 
  544                                   bool any_combination_will_do) 
const override;
 
  560                                   bool any_combination_will_do) 
const override;
 
  619  void set_at(uint index_1, uint index_2) {
 
  664  void set_at(uint index_1, uint index_2, uint index_3) {
 
uint32_t Access_bitmask
Definition: auth_acls.h:34
 
ACL_internal_access_result
Definition: auth_common.h:88
 
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
 
Per internal table ACL access rules.
Definition: auth_common.h:110
 
uint8 type
Definition: key.h:73
 
Definition: sql_list.h:494
 
A class to keep list of table shares for non-native performance schema tables i.e.
Definition: pfs_engine_table.h:400
 
void lock_share_list()
Definition: pfs_engine_table.h:408
 
mysql_mutex_t LOCK_pfs_share_list
Definition: pfs_engine_table.h:423
 
void add_share(PFS_engine_table_share *share)
Definition: pfs_engine_table.h:412
 
PFS_dynamic_table_shares()=default
 
std::vector< PFS_engine_table_share * > shares_vector
Definition: pfs_engine_table.h:422
 
void unlock_share_list()
Definition: pfs_engine_table.h:410
 
Privileges for editable tables.
Definition: pfs_engine_table.h:487
 
PFS_editable_acl()=default
 
~PFS_editable_acl() override=default
 
Definition: pfs_engine_table.h:284
 
size_t m_key_fetch_count
Definition: pfs_engine_table.h:298
 
uint m_fields
Definition: pfs_engine_table.h:296
 
KEY * m_key_info
Definition: pfs_engine_table.h:297
 
void set_key_info(KEY *key_info)
Definition: pfs_engine_table.h:290
 
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:301
 
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:325
 
PFS_engine_key * m_key_ptr_2
Definition: pfs_engine_table.h:348
 
PFS_engine_key * m_key_ptr_4
Definition: pfs_engine_table.h:350
 
PFS_engine_index(PFS_engine_key *key_1, PFS_engine_key *key_2)
Definition: pfs_engine_table.h:310
 
~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:333
 
PFS_engine_key * m_key_ptr_5
Definition: pfs_engine_table.h:351
 
PFS_engine_index(PFS_engine_key *key_1, PFS_engine_key *key_2, PFS_engine_key *key_3)
Definition: pfs_engine_table.h:317
 
PFS_engine_key * m_key_ptr_3
Definition: pfs_engine_table.h:349
 
PFS_engine_key * m_key_ptr_1
Definition: pfs_engine_table.h:347
 
PFS_engine_index(PFS_engine_key *key_1)
Definition: pfs_engine_table.h:303
 
Definition: pfs_engine_table.h:268
 
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:277
 
PFS_engine_key(const char *name)
Definition: pfs_engine_table.h:270
 
bool m_is_null
Definition: pfs_engine_table.h:281
 
enum ha_rkey_function m_find_flag
Definition: pfs_engine_table.h:280
 
An abstract PERFORMANCE_SCHEMA table.
Definition: pfs_engine_table.h:70
 
virtual int index_prev()
Definition: pfs_engine_table.h:113
 
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:180
 
virtual int rnd_init(bool scan)
Initialize table scan.
Definition: pfs_engine_table.h:89
 
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:117
 
time_normalizer * m_normalizer
Current normalizer.
Definition: pfs_engine_table.h:178
 
virtual int index_init(uint idx, bool sorted)
Definition: pfs_engine_table.h:94
 
void * m_pos_ptr
Opaque pointer to the m_pos position of this cursor.
Definition: pfs_engine_table.h:176
 
virtual int index_next()
Find key in index, read record.
Definition: pfs_engine_table.h:110
 
virtual ~PFS_engine_table()=default
Destructor.
 
virtual int index_first()
Definition: pfs_engine_table.h:115
 
virtual int index_read_last(KEY *key_infos, const uchar *key, uint key_len)
Definition: pfs_engine_table.h:103
 
const PFS_engine_table_share * m_share_ptr
Table share.
Definition: pfs_engine_table.h:174
 
PFS_engine_table(const PFS_engine_table_share *share, void *pos)
Constructor.
Definition: pfs_engine_table.h:167
 
Privileges for read only tables.
Definition: pfs_engine_table.h:433
 
~PFS_readonly_acl() override=default
 
PFS_readonly_acl()=default
 
Privileges for readable processlist tables.
Definition: pfs_engine_table.h:553
 
~PFS_readonly_processlist_acl() override=default
 
PFS_readonly_processlist_acl()=default
 
Privileges for world readable tables.
Definition: pfs_engine_table.h:521
 
~PFS_readonly_world_acl() override=default
 
PFS_readonly_world_acl()=default
 
Privileges for truncatable tables.
Definition: pfs_engine_table.h:451
 
PFS_truncatable_acl()=default
 
~PFS_truncatable_acl() override=default
 
Privileges for world readable truncatable tables.
Definition: pfs_engine_table.h:537
 
PFS_truncatable_world_acl()=default
 
~PFS_truncatable_world_acl() override=default
 
Privileges for unknown tables.
Definition: pfs_engine_table.h:504
 
PFS_unknown_acl()=default
 
~PFS_unknown_acl() override=default
 
Privileges for updatable tables.
Definition: pfs_engine_table.h:469
 
~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:40
 
#define mysql_mutex_lock(M)
Definition: mysql_mutex.h:50
 
#define mysql_mutex_unlock(M)
Definition: mysql_mutex.h:57
 
static char buf[MAX_BUF]
Definition: conf_to_src.cc:74
 
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:112
 
mysql_service_pfs_plugin_table_v1_t * pfs_table
Definition: log0pfs.cc:47
 
This file includes constants used by all storage engines.
 
ha_base_keytype
Definition: my_base.h:440
 
#define HA_ERR_UNSUPPORTED
unsupported extension used
Definition: my_base.h:931
 
ha_rkey_function
Definition: my_base.h:78
 
my_off_t ha_rows
Definition: my_base.h:1217
 
Header for compiler-dependent features.
 
Some integer typedefs for easier portability.
 
unsigned long long int ulonglong
Definition: my_inttypes.h:56
 
unsigned char uchar
Definition: my_inttypes.h:52
 
long long int longlong
Definition: my_inttypes.h:55
 
ABI for instrumented mutexes.
 
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
 
Definition: buf0block_hint.cc:30
 
static PFS_engine_table_share_proxy share
Definition: connection_control_pfs_table.cc:92
 
PT & ref(PT *tp)
Definition: tablespace_impl.cc:359
 
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:76
 
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
 
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
 
const char * table_name
Definition: rules_table_service.cc:56
 
Instrumentation helpers for mutexes.
 
required string key
Definition: replication_asynchronous_connection_failover.proto:60
 
case opt name
Definition: sslopt-case.h:29
 
Performance schema instrumentation (declarations).
 
Position of a double cursor, for iterations using 2 nested loops.
Definition: pfs_engine_table.h:602
 
void set_after(const PFS_double_index *other)
Set this index after a given position.
Definition: pfs_engine_table.h:637
 
void set_at(uint index_1, uint index_2)
Set this index at a given position.
Definition: pfs_engine_table.h:619
 
PFS_double_index(uint index_1, uint index_2)
Constructor.
Definition: pfs_engine_table.h:613
 
uint m_index_1
Outer index.
Definition: pfs_engine_table.h:604
 
void set_at(const PFS_double_index *other)
Set this index at a given position.
Definition: pfs_engine_table.h:628
 
uint m_index_2
Current index within index_1.
Definition: pfs_engine_table.h:606
 
A structure to keep callback functions to be implemented by plugin/component.
Definition: pfs_plugin_table_service.h:413
 
A PERFORMANCE_SCHEMA table share.
Definition: pfs_engine_table.h:359
 
PFS_engine_table_proxy m_st_table
Definition: pfs_engine_table.h:389
 
std::atomic< int > m_ref_count
Definition: pfs_engine_table.h:391
 
bool m_in_purgatory
Definition: pfs_engine_table.h:393
 
const Plugin_table * m_table_def
Table definition.
Definition: pfs_engine_table.h:384
 
const ACL_internal_table_access * m_acl
Table Access Control List.
Definition: pfs_engine_table.h:370
 
pfs_write_row_t m_write_row
Write row function.
Definition: pfs_engine_table.h:374
 
uint m_ref_length
Length of the m_pos position structure.
Definition: pfs_engine_table.h:380
 
pfs_delete_all_rows_t m_delete_all_rows
Delete all rows function.
Definition: pfs_engine_table.h:376
 
pfs_get_row_count_t m_get_row_count
Get rows count function.
Definition: pfs_engine_table.h:378
 
THR_LOCK * m_thr_lock_ptr
The lock, stored on behalf of the SQL layer.
Definition: pfs_engine_table.h:382
 
pfs_open_table_t m_open_table
Open table function.
Definition: pfs_engine_table.h:372
 
bool m_perpetual
Table is available even if the Performance Schema is disabled.
Definition: pfs_engine_table.h:386
 
PFS_key_reader: Convert key into internal format.
Definition: pfs_engine_table.h:196
 
uint m_parts_found
Definition: pfs_engine_table.h:265
 
PFS_key_reader(const KEY *key_info, const uchar *key, uint key_len)
Definition: pfs_engine_table.h:197
 
const KEY_PART_INFO * m_remaining_key_part_info
Definition: pfs_engine_table.h:260
 
ha_base_keytype get_key_type()
Definition: pfs_engine_table.h:251
 
const KEY * m_key_info
Definition: pfs_engine_table.h:256
 
uint m_remaining_key_len
Definition: pfs_engine_table.h:262
 
const uchar * m_remaining_key
Definition: pfs_engine_table.h:261
 
const uchar * m_key
Definition: pfs_engine_table.h:258
 
uint m_key_len
Definition: pfs_engine_table.h:259
 
const KEY_PART_INFO * m_key_part_info
Definition: pfs_engine_table.h:257
 
Position of a cursor, for simple iterations.
Definition: pfs_engine_table.h:567
 
PFS_simple_index(uint index)
Constructor.
Definition: pfs_engine_table.h:575
 
void set_at(const PFS_simple_index *other)
Set this index at a given position.
Definition: pfs_engine_table.h:587
 
void set_at(uint index)
Set this index at a given position.
Definition: pfs_engine_table.h:581
 
void set_after(const PFS_simple_index *other)
Set this index after a given position.
Definition: pfs_engine_table.h:593
 
void next()
Set this index to the next record.
Definition: pfs_engine_table.h:598
 
uint m_index
Current row index.
Definition: pfs_engine_table.h:569
 
Position of a triple cursor, for iterations using 3 nested loops.
Definition: pfs_engine_table.h:644
 
void set_at(const PFS_triple_index *other)
Set this index at a given position.
Definition: pfs_engine_table.h:674
 
uint m_index_3
Current index within index_2.
Definition: pfs_engine_table.h:650
 
uint m_index_2
Current index within index_1.
Definition: pfs_engine_table.h:648
 
PFS_triple_index(uint index_1, uint index_2, uint index_3)
Constructor.
Definition: pfs_engine_table.h:658
 
void set_after(const PFS_triple_index *other)
Set this index after a given position.
Definition: pfs_engine_table.h:684
 
uint m_index_1
Outer index.
Definition: pfs_engine_table.h:646
 
void set_at(uint index_1, uint index_2, uint index_3)
Set this index at a given position.
Definition: pfs_engine_table.h:664
 
Definition: thr_lock.h:139
 
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50
 
A time normalizer.
Definition: pfs_timer.h:119