MySQL 9.1.0
Source Code Documentation
Collaboration diagram for Performance Schema Engine:

Classes

class  ha_perfschema
 A handler for a PERFORMANCE_SCHEMA table. More...
 
class  PFS_internal_schema_access
 Implementation of internal ACL checks, for the performance schema. More...
 
class  PFS_engine_table
 An abstract PERFORMANCE_SCHEMA table. More...
 
struct  PFS_key_reader
 PFS_key_reader: Convert key into internal format. More...
 
class  PFS_engine_key
 
class  PFS_engine_index_abstract
 
class  PFS_engine_index
 
struct  PFS_engine_table_share
 A PERFORMANCE_SCHEMA table share. More...
 
class  PFS_dynamic_table_shares
 A class to keep list of table shares for non-native performance schema tables i.e. More...
 
class  PFS_readonly_acl
 Privileges for read only tables. More...
 
class  PFS_truncatable_acl
 Privileges for truncatable tables. More...
 
class  PFS_updatable_acl
 Privileges for updatable tables. More...
 
class  PFS_editable_acl
 Privileges for editable tables. More...
 
class  PFS_unknown_acl
 Privileges for unknown tables. More...
 
class  PFS_readonly_world_acl
 Privileges for world readable tables. More...
 
class  PFS_truncatable_world_acl
 Privileges for world readable truncatable tables. More...
 
class  PFS_readonly_processlist_acl
 Privileges for readable processlist tables. More...
 
struct  PFS_simple_index
 Position of a cursor, for simple iterations. More...
 
struct  PFS_double_index
 Position of a double cursor, for iterations using 2 nested loops. More...
 
struct  PFS_triple_index
 Position of a triple cursor, for iterations using 3 nested loops. More...
 

Macros

#define READ_INT_COMMON(DS, KT, DT, KORR)
 

Typedefs

typedef PFS_engine_table *(* pfs_open_table_t) (PFS_engine_table_share *)
 Callback to open a table. More...
 
typedef int(* pfs_write_row_t) (PFS_engine_table *pfs_table, TABLE *table, unsigned char *buf, Field **fields)
 Callback to write a row. More...
 
typedef int(* pfs_delete_all_rows_t) ()
 Callback to delete all rows. More...
 
typedef ha_rows(* pfs_get_row_count_t) ()
 Callback to get a row count. More...
 

Functions

int compare_table_names (const char *name1, const char *name2)
 
static bool allow_drop_schema_privilege ()
 
void initialize_performance_schema_acl (bool bootstrap)
 Initialize the performance schema ACL. More...
 
static bool allow_drop_table_privilege ()
 
void PFS_dynamic_table_shares::init_mutex ()
 
void PFS_dynamic_table_shares::destroy_mutex ()
 
static void PFS_engine_table_share::get_all_tables (List< const Plugin_table > *tables)
 Get all the core performance schema tables. More...
 
static void PFS_engine_table_share::init_all_locks ()
 Initialize all the table share locks. More...
 
static void PFS_engine_table_share::delete_all_locks ()
 Delete all the table share locks. More...
 
ha_rows PFS_engine_table_share::get_row_count () const
 Get the row count. More...
 
int PFS_engine_table_share::write_row (PFS_engine_table *pfs_table, TABLE *table, unsigned char *buf, Field **fields) const
 Write a row. More...
 
static PFS_engine_table_sharePFS_engine_table::find_engine_table_share (const char *name)
 Find a table share by name. More...
 
int PFS_engine_table::read_row (TABLE *table, unsigned char *buf, Field **fields)
 Read a table row. More...
 
int PFS_engine_table::update_row (TABLE *table, const unsigned char *old_buf, unsigned char *new_buf, Field **fields)
 Update a table row. More...
 
int PFS_engine_table::delete_row (TABLE *table, const unsigned char *buf, Field **fields)
 Delete a row from this table. More...
 
virtual int PFS_engine_table::delete_row_values (TABLE *table, const unsigned char *buf, Field **fields)
 Delete a row. More...
 
void PFS_engine_table::get_position (void *ref)
 Get the position of the current row. More...
 
void PFS_engine_table::set_position (const void *ref)
 Set the table cursor at a given position. More...
 
virtual int PFS_engine_table::update_row_values (TABLE *table, const unsigned char *old_buf, unsigned char *new_buf, Field **fields)
 Update the current row values. More...
 
virtual int PFS_engine_table::index_read (KEY *key_infos, uint index, const uchar *key, uint key_len, enum ha_rkey_function find_flag)
 Positions an index cursor to the index specified in the handle. More...
 
virtual int PFS_engine_table::index_next_same (const uchar *key, uint key_len)
 Reads the next row matching the given key value. More...
 
PFS_engine_table_sharePFS_dynamic_table_shares::find_share (const char *table_name, bool is_dead_too)
 Find a share in the list. More...
 
void PFS_dynamic_table_shares::remove_share (PFS_engine_table_share *share)
 Remove a share from the list. More...
 
ACL_internal_access_result PFS_internal_schema_access::check (Access_bitmask want_access, Access_bitmask *save_priv, bool any_combination_will_do) const override
 Check access to an internal schema. More...
 
const ACL_internal_table_accessPFS_internal_schema_access::lookup (const char *name) const override
 Search for per table ACL access rules by table name. More...
 
ACL_internal_access_result PFS_readonly_acl::check (Access_bitmask want_access, Access_bitmask *granted_access, bool any_combination_will_do) const override
 Check access to an internal table. More...
 
ACL_internal_access_result PFS_readonly_world_acl::check (Access_bitmask want_access, Access_bitmask *save_priv, bool any_combination_will_do) const override
 Check access to an internal table. More...
 
ACL_internal_access_result PFS_readonly_processlist_acl::check (Access_bitmask want_access, Access_bitmask *save_priv, bool any_combination_will_do) const override
 Check access to an internal table. More...
 
ACL_internal_access_result PFS_truncatable_acl::check (Access_bitmask want_access, Access_bitmask *granted_access, bool any_combination_will_do) const override
 Check access to an internal table. More...
 
ACL_internal_access_result PFS_truncatable_world_acl::check (Access_bitmask want_access, Access_bitmask *save_priv, bool any_combination_will_do) const override
 Check access to an internal table. More...
 
ACL_internal_access_result PFS_updatable_acl::check (Access_bitmask want_access, Access_bitmask *granted_access, bool any_combination_will_do) const override
 Check access to an internal table. More...
 
ACL_internal_access_result PFS_editable_acl::check (Access_bitmask want_access, Access_bitmask *granted_access, bool any_combination_will_do) const override
 Check access to an internal table. More...
 
ACL_internal_access_result PFS_unknown_acl::check (Access_bitmask want_access, Access_bitmask *granted_access, bool any_combination_will_do) const override
 Check access to an internal table. More...
 
enum ha_rkey_function PFS_key_reader::read_int8 (enum ha_rkey_function find_flag, bool &isnull, char *value)
 
enum ha_rkey_function PFS_key_reader::read_uint8 (enum ha_rkey_function find_flag, bool &isnull, uchar *value)
 
enum ha_rkey_function PFS_key_reader::read_int16 (enum ha_rkey_function find_flag, bool &isnull, short *value)
 
enum ha_rkey_function PFS_key_reader::read_uint16 (enum ha_rkey_function find_flag, bool &isnull, ushort *value)
 
enum ha_rkey_function PFS_key_reader::read_int24 (enum ha_rkey_function find_flag, bool &isnull, long *value)
 
enum ha_rkey_function PFS_key_reader::read_uint24 (enum ha_rkey_function find_flag, bool &isnull, ulong *value)
 
enum ha_rkey_function PFS_key_reader::read_long (enum ha_rkey_function find_flag, bool &isnull, long *value)
 
enum ha_rkey_function PFS_key_reader::read_ulong (enum ha_rkey_function find_flag, bool &isnull, ulong *value)
 
enum ha_rkey_function PFS_key_reader::read_longlong (enum ha_rkey_function find_flag, bool &isnull, longlong *value)
 
enum ha_rkey_function PFS_key_reader::read_ulonglong (enum ha_rkey_function find_flag, bool &isnull, ulonglong *value)
 
enum ha_rkey_function PFS_key_reader::read_timestamp (enum ha_rkey_function find_flag, bool &isnull, ulonglong *value, uint dec)
 
enum ha_rkey_function PFS_key_reader::read_varchar_utf8 (enum ha_rkey_function find_flag, bool &isnull, char *buffer, uint *buffer_length, uint buffer_capacity)
 
enum ha_rkey_function PFS_key_reader::read_text_utf8 (enum ha_rkey_function find_flag, bool &isnull, char *buffer, uint *buffer_length, uint buffer_capacity)
 
void PFS_engine_index::read_key (const uchar *key, uint key_len, enum ha_rkey_function find_flag) override
 

Variables

const char * pfs_engine_name
 Name of the performance schema engine. More...
 
static PFS_engine_table_shareall_shares []
 
static PSI_mutex_key key_LOCK_pfs_share_list
 
static PSI_mutex_info info_LOCK_pfs_share_list
 
PFS_dynamic_table_shares pfs_external_table_shares
 
PFS_internal_schema_access pfs_internal_access
 
PFS_readonly_acl pfs_readonly_acl
 Singleton instance of PFS_readonly_acl. More...
 
PFS_readonly_world_acl pfs_readonly_world_acl
 Singleton instance of PFS_readonly_world_acl. More...
 
PFS_readonly_processlist_acl pfs_readonly_processlist_acl
 Singleton instance of PFS_readonly_processlist_acl. More...
 
PFS_truncatable_acl pfs_truncatable_acl
 Singleton instance of PFS_truncatable_acl. More...
 
PFS_truncatable_world_acl pfs_truncatable_world_acl
 Singleton instance of PFS_readonly_world_acl. More...
 
PFS_updatable_acl pfs_updatable_acl
 Singleton instance of PFS_updatable_acl. More...
 
PFS_editable_acl pfs_editable_acl
 Singleton instance of PFS_editable_acl. More...
 
PFS_unknown_acl pfs_unknown_acl
 Singleton instance of PFS_unknown_acl. More...
 
PFS_dynamic_table_shares pfs_external_table_shares
 
PFS_readonly_acl pfs_readonly_acl
 Singleton instance of PFS_readonly_acl. More...
 
PFS_truncatable_acl pfs_truncatable_acl
 Singleton instance of PFS_truncatable_acl. More...
 
PFS_updatable_acl pfs_updatable_acl
 Singleton instance of PFS_updatable_acl. More...
 
PFS_editable_acl pfs_editable_acl
 Singleton instance of PFS_editable_acl. More...
 
PFS_unknown_acl pfs_unknown_acl
 Singleton instance of PFS_unknown_acl. More...
 
PFS_readonly_world_acl pfs_readonly_world_acl
 Singleton instance of PFS_readonly_world_acl. More...
 
PFS_truncatable_world_acl pfs_truncatable_world_acl
 Singleton instance of PFS_readonly_world_acl. More...
 
PFS_readonly_processlist_acl pfs_readonly_processlist_acl
 Singleton instance of PFS_readonly_processlist_acl. More...
 

Detailed Description

Macro Definition Documentation

◆ READ_INT_COMMON

#define READ_INT_COMMON (   DS,
  KT,
  DT,
  KORR 
)
Value:
if (m_remaining_key_part_info->store_length <= m_remaining_key_len) { \
const size_t data_size = DS; \
assert(m_remaining_key_part_info->type == KT); \
assert(m_remaining_key_part_info->store_length >= data_size); \
isnull = false; \
if (m_remaining_key_part_info->field->is_nullable()) { \
if (m_remaining_key[0]) { \
isnull = true; \
} \
m_remaining_key += HA_KEY_NULL_LENGTH; \
m_remaining_key_len -= HA_KEY_NULL_LENGTH; \
} \
const DT data = KORR(m_remaining_key); \
m_remaining_key += data_size; \
m_remaining_key_len -= (uint)data_size; \
m_parts_found++; \
m_remaining_key_part_info++; \
*value = data; \
return ((m_remaining_key_len == 0) ? find_flag : HA_READ_KEY_EXACT); \
} \
assert(m_remaining_key_len == 0); \
@ HA_READ_KEY_EXACT
Definition: my_base.h:79
@ HA_READ_INVALID
Definition: my_base.h:93
#define HA_KEY_NULL_LENGTH
Definition: handler.h:618

Typedef Documentation

◆ pfs_delete_all_rows_t

typedef int(* pfs_delete_all_rows_t) ()

Callback to delete all rows.

◆ pfs_get_row_count_t

typedef ha_rows(* pfs_get_row_count_t) ()

Callback to get a row count.

◆ pfs_open_table_t

typedef PFS_engine_table *(* pfs_open_table_t) (PFS_engine_table_share *)

Callback to open a table.

◆ pfs_write_row_t

typedef int(* pfs_write_row_t) (PFS_engine_table *pfs_table, TABLE *table, unsigned char *buf, Field **fields)

Callback to write a row.

Function Documentation

◆ allow_drop_schema_privilege()

static bool allow_drop_schema_privilege ( )
static

◆ allow_drop_table_privilege()

static bool allow_drop_table_privilege ( )
static

◆ check() [1/9]

ACL_internal_access_result PFS_readonly_acl::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal table.

When a privilege is granted, this method add the requested privilege to save_priv.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Implements ACL_internal_table_access.

Reimplemented in PFS_readonly_world_acl, and PFS_readonly_processlist_acl.

◆ check() [2/9]

ACL_internal_access_result PFS_truncatable_acl::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal table.

When a privilege is granted, this method add the requested privilege to save_priv.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Implements ACL_internal_table_access.

Reimplemented in PFS_truncatable_world_acl.

◆ check() [3/9]

ACL_internal_access_result PFS_updatable_acl::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal table.

When a privilege is granted, this method add the requested privilege to save_priv.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Implements ACL_internal_table_access.

◆ check() [4/9]

ACL_internal_access_result PFS_editable_acl::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal table.

When a privilege is granted, this method add the requested privilege to save_priv.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Implements ACL_internal_table_access.

◆ check() [5/9]

ACL_internal_access_result PFS_unknown_acl::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal table.

When a privilege is granted, this method add the requested privilege to save_priv.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Implements ACL_internal_table_access.

◆ check() [6/9]

ACL_internal_access_result PFS_internal_schema_access::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal schema.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Implements ACL_internal_schema_access.

◆ check() [7/9]

ACL_internal_access_result PFS_readonly_world_acl::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal table.

When a privilege is granted, this method add the requested privilege to save_priv.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Reimplemented from PFS_readonly_acl.

◆ check() [8/9]

ACL_internal_access_result PFS_truncatable_world_acl::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal table.

When a privilege is granted, this method add the requested privilege to save_priv.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Reimplemented from PFS_truncatable_acl.

◆ check() [9/9]

ACL_internal_access_result PFS_readonly_processlist_acl::check ( Access_bitmask  want_access,
Access_bitmask save_priv,
bool  any_combination_will_do 
) const
overridevirtual

Check access to an internal table.

When a privilege is granted, this method add the requested privilege to save_priv.

Parameters
want_accessthe privileges requested
[in,out]save_privthe privileges granted
any_combination_will_dotrue if it's enough to have any privilege for any combination of the table columns.
Return values
ACL_INTERNAL_ACCESS_GRANTEDAll the requested privileges are granted, and saved in save_priv.
ACL_INTERNAL_ACCESS_DENIEDAt least one of the requested privileges was denied.
ACL_INTERNAL_ACCESS_CHECK_GRANTNo requested privilege was denied, and grant should be checked for at least one privilege. Requested privileges that are granted, if any, are saved in save_priv.

Reimplemented from PFS_readonly_acl.

◆ compare_table_names()

int compare_table_names ( const char *  name1,
const char *  name2 
)

◆ delete_all_locks()

void PFS_engine_table_share::delete_all_locks ( )
static

Delete all the table share locks.

◆ delete_row()

int PFS_engine_table::delete_row ( TABLE table,
const unsigned char *  buf,
Field **  fields 
)

Delete a row from this table.

Parameters
tableTable handle
bufthe row buffer to delete
fieldsTable fields
Returns
0 on success

◆ delete_row_values()

int PFS_engine_table::delete_row_values ( TABLE table,
const unsigned char *  buf,
Field **  fields 
)
protectedvirtual

Delete a row.

Parameters
tableTable handle
bufRow buffer
fieldsTable fields

Reimplemented in table_plugin_table, table_setup_actors, and table_setup_objects.

◆ destroy_mutex()

void PFS_dynamic_table_shares::destroy_mutex ( )

◆ find_engine_table_share()

PFS_engine_table_share * PFS_engine_table::find_engine_table_share ( const char *  name)
static

Find a table share by name.

Parameters
nameThe table name
Returns
table share

◆ find_share()

PFS_engine_table_share * PFS_dynamic_table_shares::find_share ( const char *  table_name,
bool  is_dead_too 
)

Find a share in the list.

Parameters
table_namename of the table
is_dead_tooif true, consider tables marked to be deleted
Returns
if found table share or NULL

◆ get_all_tables()

void PFS_engine_table_share::get_all_tables ( List< const Plugin_table > *  tables)
static

Get all the core performance schema tables.

◆ get_position()

void PFS_engine_table::get_position ( void *  ref)

Get the position of the current row.

Parameters
[out]refposition

◆ get_row_count()

ha_rows PFS_engine_table_share::get_row_count ( ) const

Get the row count.

◆ index_next_same()

int PFS_engine_table::index_next_same ( const uchar key,
uint  key_len 
)
virtual

Reads the next row matching the given key value.

Returns
0, HA_ERR_END_OF_FILE, or error

◆ index_read()

int PFS_engine_table::index_read ( KEY key_infos,
uint  index,
const uchar key,
uint  key_len,
enum ha_rkey_function  find_flag 
)
virtual

Positions an index cursor to the index specified in the handle.

Fetches the row if any.

Returns
0, HA_ERR_KEY_NOT_FOUND, or error

◆ init_all_locks()

void PFS_engine_table_share::init_all_locks ( )
static

Initialize all the table share locks.

◆ init_mutex()

void PFS_dynamic_table_shares::init_mutex ( )

◆ initialize_performance_schema_acl()

void initialize_performance_schema_acl ( bool  bootstrap)

Initialize the performance schema ACL.

ACL is strictly enforced when the server is running in normal mode, to enforce that only legal operations are allowed. When running in bootstrap mode, ACL restrictions are relaxed, to allow the bootstrap scripts to DROP / CREATE performance schema tables.

See also
ACL_internal_schema_registry
Parameters
bootstrapTrue if the server is starting in bootstrap mode.

◆ lookup()

const ACL_internal_table_access * PFS_internal_schema_access::lookup ( const char *  name) const
overridevirtual

Search for per table ACL access rules by table name.

Parameters
namethe table name
Returns
per table access rules, or NULL

Implements ACL_internal_schema_access.

◆ read_int16()

enum ha_rkey_function PFS_key_reader::read_int16 ( enum ha_rkey_function  find_flag,
bool &  isnull,
short *  value 
)

◆ read_int24()

enum ha_rkey_function PFS_key_reader::read_int24 ( enum ha_rkey_function  find_flag,
bool &  isnull,
long *  value 
)

◆ read_int8()

enum ha_rkey_function PFS_key_reader::read_int8 ( enum ha_rkey_function  find_flag,
bool &  isnull,
char *  value 
)

◆ read_key()

void PFS_engine_index::read_key ( const uchar key,
uint  key_len,
enum ha_rkey_function  find_flag 
)
overridevirtual

◆ read_long()

enum ha_rkey_function PFS_key_reader::read_long ( enum ha_rkey_function  find_flag,
bool &  isnull,
long *  value 
)

◆ read_longlong()

enum ha_rkey_function PFS_key_reader::read_longlong ( enum ha_rkey_function  find_flag,
bool &  isnull,
longlong value 
)

◆ read_row()

int PFS_engine_table::read_row ( TABLE table,
unsigned char *  buf,
Field **  fields 
)

Read a table row.

Parameters
tableTable handle
bufRow buffer
fieldsTable fields
Returns
0 on success

◆ read_text_utf8()

enum ha_rkey_function PFS_key_reader::read_text_utf8 ( enum ha_rkey_function  find_flag,
bool &  isnull,
char *  buffer,
uint *  buffer_length,
uint  buffer_capacity 
)

◆ read_timestamp()

enum ha_rkey_function PFS_key_reader::read_timestamp ( enum ha_rkey_function  find_flag,
bool &  isnull,
ulonglong value,
uint  dec 
)

◆ read_uint16()

enum ha_rkey_function PFS_key_reader::read_uint16 ( enum ha_rkey_function  find_flag,
bool &  isnull,
ushort *  value 
)

◆ read_uint24()

enum ha_rkey_function PFS_key_reader::read_uint24 ( enum ha_rkey_function  find_flag,
bool &  isnull,
ulong *  value 
)

◆ read_uint8()

enum ha_rkey_function PFS_key_reader::read_uint8 ( enum ha_rkey_function  find_flag,
bool &  isnull,
uchar value 
)

◆ read_ulong()

enum ha_rkey_function PFS_key_reader::read_ulong ( enum ha_rkey_function  find_flag,
bool &  isnull,
ulong *  value 
)

◆ read_ulonglong()

enum ha_rkey_function PFS_key_reader::read_ulonglong ( enum ha_rkey_function  find_flag,
bool &  isnull,
ulonglong value 
)

◆ read_varchar_utf8()

enum ha_rkey_function PFS_key_reader::read_varchar_utf8 ( enum ha_rkey_function  find_flag,
bool &  isnull,
char *  buffer,
uint *  buffer_length,
uint  buffer_capacity 
)

◆ remove_share()

void PFS_dynamic_table_shares::remove_share ( PFS_engine_table_share share)

Remove a share from the list.

Parameters
shareshare to be removed

◆ set_position()

void PFS_engine_table::set_position ( const void *  ref)

Set the table cursor at a given position.

Parameters
[in]refposition

◆ update_row()

int PFS_engine_table::update_row ( TABLE table,
const unsigned char *  old_buf,
unsigned char *  new_buf,
Field **  fields 
)

Update a table row.

Parameters
tableTable handle
old_bufold row buffer
new_bufnew row buffer
fieldsTable fields
Returns
0 on success

◆ update_row_values()

int PFS_engine_table::update_row_values ( TABLE table,
const unsigned char *  old_buf,
unsigned char *  new_buf,
Field **  fields 
)
protectedvirtual

Update the current row values.

Parameters
tableTable handle
old_bufold row buffer
new_bufnew row buffer
fieldsTable fields

Reimplemented in table_plugin_table, table_setup_actors, table_setup_consumers, table_setup_instruments, table_setup_loggers, table_setup_meters, table_setup_objects, table_setup_threads, and table_threads.

◆ write_row()

int PFS_engine_table_share::write_row ( PFS_engine_table pfs_table,
TABLE table,
unsigned char *  buf,
Field **  fields 
) const

Write a row.

Variable Documentation

◆ all_shares

PFS_engine_table_share* all_shares[]
static

◆ info_LOCK_pfs_share_list

PSI_mutex_info info_LOCK_pfs_share_list
static
Initial value:
= {
"Components can provide their own performance_schema tables. "
"This lock protects the list of such tables definitions."}
#define PSI_FLAG_SINGLETON
Singleton flag.
Definition: component_common.h:35
static PSI_mutex_key key_LOCK_pfs_share_list
Definition: pfs_engine_table.cc:618
#define PSI_VOLATILITY_PERMANENT
Definition: psi_bits.h:154

◆ key_LOCK_pfs_share_list

PSI_mutex_key key_LOCK_pfs_share_list
static

◆ pfs_editable_acl [1/2]

PFS_editable_acl pfs_editable_acl

Singleton instance of PFS_editable_acl.

◆ pfs_editable_acl [2/2]

PFS_editable_acl pfs_editable_acl
extern

Singleton instance of PFS_editable_acl.

◆ pfs_engine_name

const char* pfs_engine_name
extern

Name of the performance schema engine.

◆ pfs_external_table_shares [1/2]

PFS_dynamic_table_shares pfs_external_table_shares

◆ pfs_external_table_shares [2/2]

PFS_dynamic_table_shares pfs_external_table_shares
extern

◆ pfs_internal_access

PFS_internal_schema_access pfs_internal_access

◆ pfs_readonly_acl [1/2]

PFS_readonly_acl pfs_readonly_acl

Singleton instance of PFS_readonly_acl.

◆ pfs_readonly_acl [2/2]

PFS_readonly_acl pfs_readonly_acl
extern

Singleton instance of PFS_readonly_acl.

◆ pfs_readonly_processlist_acl [1/2]

PFS_readonly_processlist_acl pfs_readonly_processlist_acl

Singleton instance of PFS_readonly_processlist_acl.

◆ pfs_readonly_processlist_acl [2/2]

PFS_readonly_processlist_acl pfs_readonly_processlist_acl
extern

Singleton instance of PFS_readonly_processlist_acl.

◆ pfs_readonly_world_acl [1/2]

PFS_readonly_world_acl pfs_readonly_world_acl

Singleton instance of PFS_readonly_world_acl.

◆ pfs_readonly_world_acl [2/2]

PFS_readonly_world_acl pfs_readonly_world_acl
extern

Singleton instance of PFS_readonly_world_acl.

◆ pfs_truncatable_acl [1/2]

PFS_truncatable_acl pfs_truncatable_acl

Singleton instance of PFS_truncatable_acl.

◆ pfs_truncatable_acl [2/2]

PFS_truncatable_acl pfs_truncatable_acl
extern

Singleton instance of PFS_truncatable_acl.

◆ pfs_truncatable_world_acl [1/2]

PFS_truncatable_world_acl pfs_truncatable_world_acl

Singleton instance of PFS_readonly_world_acl.

◆ pfs_truncatable_world_acl [2/2]

PFS_truncatable_world_acl pfs_truncatable_world_acl
extern

Singleton instance of PFS_readonly_world_acl.

◆ pfs_unknown_acl [1/2]

PFS_unknown_acl pfs_unknown_acl

Singleton instance of PFS_unknown_acl.

◆ pfs_unknown_acl [2/2]

PFS_unknown_acl pfs_unknown_acl
extern

Singleton instance of PFS_unknown_acl.

◆ pfs_updatable_acl [1/2]

PFS_updatable_acl pfs_updatable_acl

Singleton instance of PFS_updatable_acl.

◆ pfs_updatable_acl [2/2]

PFS_updatable_acl pfs_updatable_acl
extern

Singleton instance of PFS_updatable_acl.