MySQL 8.3.0
Source Code Documentation
pfs_example_country.cc File Reference
#include <assert.h>
#include <cstring>
#include "pfs_example_country.h"

Functions

bool is_duplicate (Country_record *record, int skip_index)
 Check for duplicate value of Primary/Unique Key column(s). More...
 
PSI_table_handlecountry_open_table (PSI_pos **pos)
 Instantiate Country_Table_Handle at plugin code when corresponding table in performance schema is opened. More...
 
void country_close_table (PSI_table_handle *handle)
 Destroy the Country_Table_Handle at plugin code when corresponding table in performance schema is closed. More...
 
static void copy_record (Country_record *dest, Country_record *source)
 
int country_rnd_next (PSI_table_handle *handle)
 
int country_rnd_init (PSI_table_handle *, bool)
 
int country_rnd_pos (PSI_table_handle *handle)
 
int country_index_init (PSI_table_handle *handle, unsigned int idx, bool, PSI_index_handle **index)
 
int country_index_read (PSI_index_handle *index, PSI_key_reader *reader, unsigned int idx, int find_flag)
 
int country_index_next (PSI_table_handle *handle)
 
void country_reset_position (PSI_table_handle *handle)
 
int country_read_column_value (PSI_table_handle *handle, PSI_field *field, unsigned int index)
 
int country_write_row_values (PSI_table_handle *handle)
 
int country_write_column_value (PSI_table_handle *handle, PSI_field *field, unsigned int index)
 
int country_update_row_values (PSI_table_handle *handle)
 
int country_update_column_value (PSI_table_handle *handle, PSI_field *field, unsigned int index)
 
int country_delete_row_values (PSI_table_handle *handle)
 
int country_delete_all_rows (void)
 
unsigned long long country_get_row_count (void)
 
void init_country_share (PFS_engine_table_share_proxy *share)
 

Variables

PFS_engine_table_share_proxy country_st_share
 
native_mutex_t LOCK_country_records_array
 
unsigned int country_rows_in_table = 0
 
unsigned int country_next_available_index = 0
 
Country_record country_records_array [COUNTRY_MAX_ROWS]
 An array to keep rows of the tables. More...
 

Function Documentation

◆ copy_record()

static void copy_record ( Country_record dest,
Country_record source 
)
static

◆ country_close_table()

void country_close_table ( PSI_table_handle handle)

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

◆ country_delete_all_rows()

int country_delete_all_rows ( void  )

◆ country_delete_row_values()

int country_delete_row_values ( PSI_table_handle handle)

◆ country_get_row_count()

unsigned long long country_get_row_count ( void  )

◆ country_index_init()

int country_index_init ( PSI_table_handle handle,
unsigned int  idx,
bool  sorted,
PSI_index_handle **  index 
)

◆ country_index_next()

int country_index_next ( PSI_table_handle handle)

◆ country_index_read()

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

◆ country_open_table()

PSI_table_handle * country_open_table ( PSI_pos **  pos)

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

◆ country_read_column_value()

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

◆ country_reset_position()

void country_reset_position ( PSI_table_handle handle)

◆ country_rnd_init()

int country_rnd_init ( PSI_table_handle h,
bool  scan 
)

◆ country_rnd_next()

int country_rnd_next ( PSI_table_handle handle)

◆ country_rnd_pos()

int country_rnd_pos ( PSI_table_handle handle)

◆ country_update_column_value()

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

◆ country_update_row_values()

int country_update_row_values ( PSI_table_handle handle)

◆ country_write_column_value()

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

◆ country_write_row_values()

int country_write_row_values ( PSI_table_handle handle)

◆ init_country_share()

void init_country_share ( PFS_engine_table_share_proxy share)

◆ is_duplicate()

bool is_duplicate ( Country_record record,
int  skip_index 
)

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 his/her own search to make sure duplicate values are not inserted/updated 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

◆ country_next_available_index

unsigned int country_next_available_index = 0

◆ country_records_array

Country_record country_records_array[COUNTRY_MAX_ROWS]
Initial value:
= {
{"", 0, "", 0, "", 0, {0, true}, {0, true}, {0, true}, 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.

◆ country_rows_in_table

unsigned int country_rows_in_table = 0

◆ country_st_share

PFS_engine_table_share_proxy country_st_share

◆ LOCK_country_records_array

native_mutex_t LOCK_country_records_array