MySQL 8.0.39
Source Code Documentation
pfs_example_employee_name.cc File Reference

Functions

static bool is_duplicate (Ename_Record *record, int skip_index)
 Check for duplicate value of Primary/Unique Key column(s). More...
 
PSI_table_handleename_open_table (PSI_pos **pos)
 Instantiate Ename_Table_Handle at plugin code when corresponding table in performance schema is opened. More...
 
void ename_close_table (PSI_table_handle *handle)
 Destroy the Ename_Table_Handle at plugin code when corresponding table in performance schema is closed. More...
 
static void copy_record (Ename_Record *dest, Ename_Record *source)
 
int ename_rnd_next (PSI_table_handle *handle)
 
int ename_rnd_init (PSI_table_handle *h, bool scan)
 
int ename_rnd_pos (PSI_table_handle *handle)
 
int ename_index_init (PSI_table_handle *handle, uint idx, bool sorted, PSI_index_handle **index)
 
int ename_index_read (PSI_index_handle *index, PSI_key_reader *reader, unsigned int idx, int find_flag)
 
int ename_index_next (PSI_table_handle *handle)
 
void ename_reset_position (PSI_table_handle *handle)
 
int ename_read_column_value (PSI_table_handle *handle, PSI_field *field, uint index)
 
int ename_write_row_values (PSI_table_handle *handle)
 
int ename_write_column_value (PSI_table_handle *handle, PSI_field *field, unsigned int index)
 
int ename_update_row_values (PSI_table_handle *handle)
 
int ename_update_column_value (PSI_table_handle *handle, PSI_field *field, unsigned int index)
 
int ename_delete_row_values (PSI_table_handle *handle)
 
int ename_delete_all_rows (void)
 
unsigned long long ename_get_row_count (void)
 
void init_ename_share (PFS_engine_table_share_proxy *share)
 

Variables

PFS_engine_table_share_proxy ename_st_share
 
mysql_mutex_t LOCK_ename_records_array
 
unsigned int ename_rows_in_table = 0
 
unsigned int ename_next_available_index = 0
 
Ename_Record ename_records_array [EMPLOYEEE_NAME_MAX_ROWS]
 An array to keep rows of the tables. More...
 

Function Documentation

◆ copy_record()

static void copy_record ( Ename_Record dest,
Ename_Record source 
)
static

◆ ename_close_table()

void ename_close_table ( PSI_table_handle handle)

Destroy the Ename_Table_Handle at plugin code when corresponding table in performance schema is closed.

◆ ename_delete_all_rows()

int ename_delete_all_rows ( void  )

◆ ename_delete_row_values()

int ename_delete_row_values ( PSI_table_handle handle)

◆ ename_get_row_count()

unsigned long long ename_get_row_count ( void  )

◆ ename_index_init()

int ename_index_init ( PSI_table_handle handle,
uint  idx,
bool  sorted,
PSI_index_handle **  index 
)

◆ ename_index_next()

int ename_index_next ( PSI_table_handle handle)

◆ ename_index_read()

int ename_index_read ( PSI_index_handle index,
PSI_key_reader reader,
unsigned int  idx,
int  find_flag 
)

◆ ename_open_table()

PSI_table_handle * ename_open_table ( PSI_pos **  pos)

Instantiate Ename_Table_Handle at plugin code when corresponding table in performance schema is opened.

◆ ename_read_column_value()

int ename_read_column_value ( PSI_table_handle handle,
PSI_field field,
uint  index 
)

◆ ename_reset_position()

void ename_reset_position ( PSI_table_handle handle)

◆ ename_rnd_init()

int ename_rnd_init ( PSI_table_handle h,
bool  scan 
)

◆ ename_rnd_next()

int ename_rnd_next ( PSI_table_handle handle)

◆ ename_rnd_pos()

int ename_rnd_pos ( PSI_table_handle handle)

◆ ename_update_column_value()

int ename_update_column_value ( PSI_table_handle handle,
PSI_field field,
unsigned int  index 
)

◆ ename_update_row_values()

int ename_update_row_values ( PSI_table_handle handle)

◆ ename_write_column_value()

int ename_write_column_value ( PSI_table_handle handle,
PSI_field field,
unsigned int  index 
)

◆ ename_write_row_values()

int ename_write_row_values ( PSI_table_handle handle)

◆ init_ename_share()

void init_ename_share ( PFS_engine_table_share_proxy share)

◆ is_duplicate()

static bool is_duplicate ( Ename_Record record,
int  skip_index 
)
static

Check for duplicate value of Primary/Unique Key column(s).

A sequential search is being used here, but it is up to the plugin writer to implement a search of their own to make sure duplicate values are not inserted for Primary/Unique Key Column(s).

Parameters
recordrecord to be checked for duplicate
skip_indexelement at this index not to be considered for comparison
Returns
true if duplicate found, false otherwise

Variable Documentation

◆ ename_next_available_index

unsigned int ename_next_available_index = 0

◆ ename_records_array

Ename_Record ename_records_array[EMPLOYEEE_NAME_MAX_ROWS]
Initial value:
= {
{{0, true}, "", 0, "", 0, false}}

An array to keep rows of the tables.

When a row is inserted in plugin table, it will be stored here. When a row is queried from plugin table, it will be fetched from here.

◆ ename_rows_in_table

unsigned int ename_rows_in_table = 0

◆ ename_st_share

◆ LOCK_ename_records_array

mysql_mutex_t LOCK_ename_records_array