MySQL 8.4.0
Source Code Documentation
Example plugin/component to use this service.

Any plugin/component, which exposes tables in performance schema, has to provide an implementation of interface PFS_engine_table_proxy.

As there is no storage engine here to handle table data, plugin/component has to:

  • maintain storage for table being exposed,
  • take care of handling any duplicate check (Primary/Unique Key, etc.)

The following table describes datatypes exposed to plugin/component which should be used to implement columns.

COLUMN TYPE TO BE USED NULL VALUE INDICATION
INTEGER PSI_int is_null=true
TINYINT PSI_tinyint -do-
SMALLINT PSI_smallint -do-
BIGINT PSI_bigint -do-
MEDIUMINT PSI_mediumint -do-
DECIMAL PSI_decimal -do-
FLOAT PSI_float -do-
DOUBLE PSI_double -do-
ENUM PSI_enum -do-
YEAR PSI_year -do-
DATE char array length=0
TIME char array -do-
DATETIME char array -do-
TIMESTAMP char array -do-
CHAR char array -do-
VARCHAR char array -do-
BLOB char array -do-

How to write a plugin/component exposing tables in Performance

Schema

Following are the example implementations of a plugin and a component which uses this pfs_plugin_table_v1 service.

An example plugin

An example component