MySQL 5.6.14 Source Code Document
|
#include <ha_perfschema.h>
Public Member Functions | |
ha_perfschema (handlerton *hton, TABLE_SHARE *share) | |
const char * | table_type (void) const |
const char * | index_type (uint) |
const char ** | bas_ext (void) const |
ulonglong | table_flags (void) const |
ulong | index_flags (uint, uint, bool) const |
uint | max_supported_record_length (void) const |
uint | max_supported_keys (void) const |
uint | max_supported_key_parts (void) const |
uint | max_supported_key_length (void) const |
ha_rows | estimate_rows_upper_bound (void) |
double | scan_time (void) |
int | open (const char *name, int mode, uint test_if_locked) |
int | close (void) |
int | write_row (uchar *buf) |
void | use_hidden_primary_key () |
int | update_row (const uchar *old_data, uchar *new_data) |
int | delete_row (const uchar *buf) |
int | rnd_init (bool scan) |
int | rnd_end (void) |
int | rnd_next (uchar *buf) |
int | rnd_pos (uchar *buf, uchar *pos) |
void | position (const uchar *record) |
int | info (uint) |
int | delete_all_rows (void) |
int | truncate () |
int | delete_table (const char *from) |
int | rename_table (const char *from, const char *to) |
int | create (const char *name, TABLE *form, HA_CREATE_INFO *create_info) |
THR_LOCK_DATA ** | store_lock (THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type) |
virtual uint8 | table_cache_type (void) |
virtual my_bool | register_query_cache_table (THD *, char *, uint, qc_engine_callback *engine_callback, ulonglong *) |
Register a named table with a call back function to the query cache. | |
virtual void | print_error (int error, myf errflags) |
Public Member Functions inherited from handler | |
virtual void | unbind_psi () |
virtual void | rebind_psi () |
handler (handlerton *ht_arg, TABLE_SHARE *share_arg) | |
virtual handler * | clone (const char *name, MEM_ROOT *mem_root) |
void | init () |
int | ha_open (TABLE *table, const char *name, int mode, int test_if_locked) |
Open database-handler. | |
int | ha_close (void) |
int | ha_index_init (uint idx, bool sorted) |
int | ha_index_end () |
int | ha_rnd_init (bool scan) |
int | ha_rnd_end () |
int | ha_rnd_next (uchar *buf) |
int | ha_rnd_pos (uchar *buf, uchar *pos) |
int | ha_index_read_map (uchar *buf, const uchar *key, key_part_map keypart_map, enum ha_rkey_function find_flag) |
int | ha_index_read_last_map (uchar *buf, const uchar *key, key_part_map keypart_map) |
int | ha_index_read_idx_map (uchar *buf, uint index, const uchar *key, key_part_map keypart_map, enum ha_rkey_function find_flag) |
int | ha_index_next (uchar *buf) |
int | ha_index_prev (uchar *buf) |
int | ha_index_first (uchar *buf) |
int | ha_index_last (uchar *buf) |
int | ha_index_next_same (uchar *buf, const uchar *key, uint keylen) |
int | ha_index_read (uchar *buf, const uchar *key, uint key_len, enum ha_rkey_function find_flag) |
int | ha_index_read_last (uchar *buf, const uchar *key, uint key_len) |
int | ha_reset () |
Check handler usage and reset state of file to after 'open'. | |
int | ha_index_or_rnd_end () |
Table_flags | ha_table_flags () const |
int | ha_external_lock (THD *thd, int lock_type) |
int | ha_write_row (uchar *buf) |
int | ha_update_row (const uchar *old_data, uchar *new_data) |
int | ha_delete_row (const uchar *buf) |
void | ha_release_auto_increment () |
int | check_collation_compatibility () |
int | ha_check_for_upgrade (HA_CHECK_OPT *check_opt) |
int | ha_check (THD *thd, HA_CHECK_OPT *check_opt) |
int | ha_repair (THD *thd, HA_CHECK_OPT *check_opt) |
void | ha_start_bulk_insert (ha_rows rows) |
int | ha_end_bulk_insert () |
int | ha_bulk_update_row (const uchar *old_data, uchar *new_data, uint *dup_key_found) |
int | ha_delete_all_rows () |
int | ha_truncate () |
int | ha_reset_auto_increment (ulonglong value) |
int | ha_optimize (THD *thd, HA_CHECK_OPT *check_opt) |
int | ha_analyze (THD *thd, HA_CHECK_OPT *check_opt) |
bool | ha_check_and_repair (THD *thd) |
int | ha_disable_indexes (uint mode) |
int | ha_enable_indexes (uint mode) |
int | ha_discard_or_import_tablespace (my_bool discard) |
int | ha_rename_table (const char *from, const char *to) |
int | ha_delete_table (const char *name) |
void | ha_drop_table (const char *name) |
int | ha_create (const char *name, TABLE *form, HA_CREATE_INFO *info) |
int | ha_create_handler_files (const char *name, const char *old_name, int action_flag, HA_CREATE_INFO *info) |
int | ha_change_partitions (HA_CREATE_INFO *create_info, const char *path, ulonglong *const copied, ulonglong *const deleted, const uchar *pack_frm_data, size_t pack_frm_len) |
int | ha_drop_partitions (const char *path) |
int | ha_rename_partitions (const char *path) |
void | adjust_next_insert_id_after_explicit_value (ulonglong nr) |
int | update_auto_increment () |
virtual bool | get_error_message (int error, String *buf) |
uint | get_dup_key (int error) |
virtual bool | get_foreign_dup_key (char *child_table_name, uint child_table_name_len, char *child_key_name, uint child_key_name_len) |
virtual void | change_table_ptr (TABLE *table_arg, TABLE_SHARE *share) |
virtual double | read_time (uint index, uint ranges, ha_rows rows) |
virtual double | index_only_read_time (uint keynr, double records) |
virtual longlong | get_memory_buffer_size () const |
virtual ha_rows | multi_range_read_info_const (uint keyno, RANGE_SEQ_IF *seq, void *seq_init_param, uint n_ranges, uint *bufsz, uint *flags, Cost_estimate *cost) |
virtual ha_rows | multi_range_read_info (uint keyno, uint n_ranges, uint keys, uint *bufsz, uint *flags, Cost_estimate *cost) |
virtual int | multi_range_read_init (RANGE_SEQ_IF *seq, void *seq_init_param, uint n_ranges, uint mode, HANDLER_BUFFER *buf) |
virtual int | multi_range_read_next (char **range_info) |
virtual const key_map * | keys_to_use_for_scanning () |
bool | has_transactions () |
virtual uint | extra_rec_buf_length () const |
virtual bool | is_fatal_error (int error, uint flags) |
virtual ha_rows | records () |
virtual enum row_type | get_row_type () const |
virtual void | column_bitmaps_signal () |
MySQL signal that it changed the column bitmap. | |
uint | get_index (void) const |
virtual bool | start_bulk_update () |
virtual bool | start_bulk_delete () |
virtual int | exec_bulk_update (uint *dup_key_found) |
virtual void | end_bulk_update () |
virtual int | end_bulk_delete () |
virtual int | read_range_first (const key_range *start_key, const key_range *end_key, bool eq_range, bool sorted) |
Read first row between two ranges. Store ranges for future calls to read_range_next. | |
virtual int | read_range_next () |
Read next row between two endpoints. | |
void | set_end_range (const key_range *range, enum_range_scan_direction direction) |
int | compare_key (key_range *range) |
int | compare_key_icp (const key_range *range) const |
virtual int | ft_init () |
void | ft_end () |
virtual FT_INFO * | ft_init_ext (uint flags, uint inx, String *key) |
virtual int | ft_read (uchar *buf) |
virtual int | rnd_pos_by_record (uchar *record) |
virtual int | read_first_row (uchar *buf, uint primary_key) |
virtual int | restart_rnd_next (uchar *buf, uchar *pos) |
virtual int | rnd_same (uchar *buf, uint inx) |
virtual ha_rows | records_in_range (uint inx, key_range *min_key, key_range *max_key) |
virtual void | get_dynamic_partition_info (PARTITION_STATS *stat_info, uint part_id) |
virtual uint32 | calculate_key_hash_value (Field **field_array) |
virtual int | extra (enum ha_extra_function operation) |
virtual int | extra_opt (enum ha_extra_function operation, ulong cache_size) |
virtual bool | start_read_removal (void) |
virtual ha_rows | end_read_removal (void) |
virtual bool | was_semi_consistent_read () |
virtual void | try_semi_consistent_read (bool) |
virtual void | unlock_row () |
virtual int | start_stmt (THD *thd, thr_lock_type lock_type) |
virtual void | get_auto_increment (ulonglong offset, ulonglong increment, ulonglong nb_desired_values, ulonglong *first_value, ulonglong *nb_reserved_values) |
void | set_next_insert_id (ulonglong id) |
void | restore_auto_increment (ulonglong prev_insert_id) |
virtual void | update_create_info (HA_CREATE_INFO *create_info) |
int | check_old_types () |
virtual int | assign_to_keycache (THD *thd, HA_CHECK_OPT *check_opt) |
virtual int | preload_keys (THD *thd, HA_CHECK_OPT *check_opt) |
virtual int | indexes_are_disabled (void) |
virtual char * | update_table_comment (const char *comment) |
virtual void | append_create_info (String *packet) |
virtual bool | is_fk_defined_on_table_or_index (uint index) |
virtual char * | get_foreign_key_create_info () |
virtual bool | can_switch_engines () |
virtual int | get_foreign_key_list (THD *thd, List< FOREIGN_KEY_INFO > *f_key_list) |
virtual int | get_parent_foreign_key_list (THD *thd, List< FOREIGN_KEY_INFO > *f_key_list) |
virtual uint | referenced_by_foreign_key () |
virtual void | init_table_handle_for_HANDLER () |
virtual void | free_foreign_key_create_info (char *str) |
virtual int | get_default_no_partitions (HA_CREATE_INFO *info) |
virtual void | set_auto_partitions (partition_info *part_info) |
virtual bool | get_no_parts (const char *name, uint *no_parts) |
virtual void | set_part_info (partition_info *part_info, bool early) |
uint | max_record_length () const |
uint | max_keys () const |
uint | max_key_parts () const |
uint | max_key_length () const |
uint | max_key_part_length () const |
virtual uint | max_supported_key_part_length () const |
virtual uint | min_record_length (uint options) const |
virtual bool | low_byte_first () const |
virtual uint | checksum () const |
virtual bool | is_crashed () const |
virtual bool | auto_repair () const |
virtual uint | lock_count (void) const |
virtual bool | primary_key_is_clustered () |
virtual int | cmp_ref (const uchar *ref1, const uchar *ref2) |
virtual const Item * | cond_push (const Item *cond) |
virtual void | cond_pop () |
virtual Item * | idx_cond_push (uint keyno, Item *idx_cond) |
virtual void | cancel_pushed_idx_cond () |
virtual uint | number_of_pushed_joins () const |
virtual const TABLE * | root_of_pushed_join () const |
virtual const TABLE * | parent_of_pushed_join () const |
virtual int | index_read_pushed (uchar *buf, const uchar *key, key_part_map keypart_map) |
virtual int | index_next_pushed (uchar *buf) |
virtual bool | check_if_incompatible_data (HA_CREATE_INFO *create_info, uint table_changes) |
virtual enum_alter_inplace_result | check_if_supported_inplace_alter (TABLE *altered_table, Alter_inplace_info *ha_alter_info) |
bool | ha_prepare_inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info) |
bool | ha_inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info) |
bool | ha_commit_inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info, bool commit) |
void | ha_notify_table_changed () |
virtual uint | alter_table_flags (uint flags) |
virtual int | bulk_update_row (const uchar *old_data, uchar *new_data, uint *dup_key_found) |
virtual int | reset_auto_increment (ulonglong value) |
virtual int | optimize (THD *thd, HA_CHECK_OPT *check_opt) |
virtual int | analyze (THD *thd, HA_CHECK_OPT *check_opt) |
virtual bool | check_and_repair (THD *thd) |
virtual int | disable_indexes (uint mode) |
virtual int | enable_indexes (uint mode) |
virtual int | discard_or_import_tablespace (my_bool discard) |
virtual void | drop_table (const char *name) |
virtual int | create_handler_files (const char *name, const char *old_name, int action_flag, HA_CREATE_INFO *info) |
virtual int | change_partitions (HA_CREATE_INFO *create_info, const char *path, ulonglong *const copied, ulonglong *const deleted, const uchar *pack_frm_data, size_t pack_frm_len) |
virtual int | drop_partitions (const char *path) |
virtual int | rename_partitions (const char *path) |
virtual bool | set_ha_share_ref (Handler_share **arg_ha_share) |
int | get_lock_type () const |
Additional Inherited Members | |
Public Types inherited from handler | |
enum | enum_range_scan_direction { RANGE_SCAN_ASC, RANGE_SCAN_DESC } |
enum | { NONE = 0, INDEX, RND } |
typedef ulonglong | Table_flags |
Static Public Member Functions inherited from Sql_alloc | |
static void * | operator new (size_t size) throw () |
static void * | operator new[] (size_t size) throw () |
static void * | operator new[] (size_t size, MEM_ROOT *mem_root) throw () |
static void * | operator new (size_t size, MEM_ROOT *mem_root) throw () |
static void | operator delete (void *ptr, size_t size) |
static void | operator delete (void *ptr, MEM_ROOT *mem_root) |
static void | operator delete[] (void *ptr, MEM_ROOT *mem_root) |
static void | operator delete[] (void *ptr, size_t size) |
Public Attributes inherited from handler | |
handlerton * | ht |
uchar * | ref |
uchar * | dup_ref |
ha_statistics | stats |
range_seq_t | mrr_iter |
RANGE_SEQ_IF | mrr_funcs |
HANDLER_BUFFER * | multi_range_buffer |
uint | ranges_in_seq |
bool | mrr_is_output_sorted |
bool | mrr_have_range |
KEY_MULTI_RANGE | mrr_cur_range |
key_range * | end_range |
uint | errkey |
uint | key_used_on_scan |
uint | active_index |
uint | ref_length |
FT_INFO * | ft_handler |
enum handler:: { ... } | inited |
bool | implicit_emptied |
const Item * | pushed_cond |
Item * | pushed_idx_cond |
uint | pushed_idx_cond_keyno |
ulonglong | next_insert_id |
ulonglong | insert_id_for_cur_row |
Discrete_interval | auto_inc_interval_for_cur_row |
uint | auto_inc_intervals_count |
PSI_table * | m_psi |
Protected Member Functions inherited from handler | |
virtual int | index_read_map (uchar *buf, const uchar *key, key_part_map keypart_map, enum ha_rkey_function find_flag) |
Positions an index cursor to the index specified in the handle ('active_index'). Fetches the row if available. If the key value is null, begin at the first key of the index. | |
virtual int | index_read_idx_map (uchar *buf, uint index, const uchar *key, key_part_map keypart_map, enum ha_rkey_function find_flag) |
Positions an index cursor to the index specified in argument. Fetches the row if available. If the key value is null, begin at the first key of the index. | |
virtual int | index_next (uchar *buf) |
virtual int | index_prev (uchar *buf) |
virtual int | index_first (uchar *buf) |
virtual int | index_last (uchar *buf) |
virtual int | index_next_same (uchar *buf, const uchar *key, uint keylen) |
virtual int | index_read_last_map (uchar *buf, const uchar *key, key_part_map keypart_map) |
The following functions works like index_read, but it find the last row with the current key value or prefix. | |
virtual bool | prepare_inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info) |
virtual bool | inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info) |
virtual bool | commit_inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info, bool commit) |
virtual void | notify_table_changed () |
void | ha_statistic_increment (ulonglong SSV::*offset) const |
void ** | ha_data (THD *) const |
THD * | ha_thd (void) const |
PSI_table_share * | ha_table_share_psi (const TABLE_SHARE *share) const |
virtual int | index_read (uchar *buf, const uchar *key, uint key_len, enum ha_rkey_function find_flag) |
virtual int | index_read_last (uchar *buf, const uchar *key, uint key_len) |
Handler_share * | get_ha_share_ptr () |
void | set_ha_share_ptr (Handler_share *arg_ha_share) |
void | lock_shared_ha_data () |
void | unlock_shared_ha_data () |
Protected Attributes inherited from handler | |
TABLE_SHARE * | table_share |
TABLE * | table |
Table_flags | cached_table_flags |
ha_rows | estimation_rows_to_insert |
KEY_PART_INFO * | range_key_part |
bool | eq_range |
bool | in_range_check_pushed_down |
A handler for a PERFORMANCE_SCHEMA table.
Definition at line 35 of file ha_perfschema.h.
ha_perfschema::ha_perfschema | ( | handlerton * | hton, |
TABLE_SHARE * | share | ||
) |
Create a new performance schema table handle on a table.
hton | storage engine handler singleton |
share | table share |
Definition at line 197 of file ha_perfschema.cc.
|
virtual |
If frm_error() is called then we will use this to find out what file extentions exist for the storage engine. This is also used by the default rename_table and delete_table method in handler.cc.
For engines that have two file name extentions (separate meta/index file and data file), the order of elements is relevant. First element of engine file name extentions array should be meta/index file extention. Second element - data file extention. This order is assumed by prepare_for_repair() when REPAIR TABLE ... USE_FRM is issued.
Implements handler.
Definition at line 208 of file ha_perfschema.cc.
|
virtual |
Close a table handle.
Implements handler.
Definition at line 228 of file ha_perfschema.cc.
|
virtual |
This is called to delete all rows in a table If the handler don't support this, then this function will return HA_ERR_WRONG_COMMAND and MySQL will delete the rows one by one.
Reimplemented from handler.
Definition at line 370 of file ha_perfschema.cc.
int ha_perfschema::delete_row | ( | const uchar * | buf | ) |
Delete a row.
buf | the row to delete |
Definition at line 275 of file ha_perfschema.cc.
|
virtual |
Delete a table in the engine. Called for base as well as temporary tables.
Delete all files with extension from bas_ext().
name | Base name of table |
0 | If we successfully deleted at least one file from base_ext and didn't get any other errors than ENOENT |
!0 | Error |
Reimplemented from handler.
Definition at line 404 of file ha_perfschema.cc.
|
inlinevirtual |
Return upper bound of current number of records in the table (max. of how many records one will retrieve when doing a full table scan) If upper bound is not known, HA_POS_ERROR should be returned as a max possible upper bound.
Reimplemented from handler.
Definition at line 99 of file ha_perfschema.h.
|
inlinevirtual |
Operations supported by indexes. None, there are no indexes.
Implements handler.
Definition at line 84 of file ha_perfschema.h.
|
virtual |
Open a performance schema table.
name | the table to open |
mode | unused |
test_if_locked | unused |
Implements handler.
Definition at line 213 of file ha_perfschema.cc.
|
virtual |
Read the row current position.
record | the current row |
Implements handler.
Definition at line 336 of file ha_perfschema.cc.
|
virtual |
Print error that we got from handler function.
Reimplemented from handler.
Definition at line 440 of file ha_perfschema.cc.
|
inlinevirtual |
Register a named table with a call back function to the query cache.
thd | The thread handle | |
table_key | A pointer to the table name in the table cache | |
key_length | The length of the table name | |
[out] | engine_callback | The pointer to the storage engine call back function |
[out] | engine_data | Storage engine specific data which could be anything |
This method offers the storage engine, the possibility to store a reference to a table name which is going to be used with query cache. The method is called each time a statement is written to the cache and can be used to verify if a specific statement is cachable. It also offers the possibility to register a generic (but static) call back function which is called each time a statement is matched against the query cache.
TRUE | Success |
FALSE | The specified table or current statement should not be cached |
Reimplemented from handler.
Definition at line 193 of file ha_perfschema.h.
|
virtual |
Default rename_table() and delete_table() rename/delete files with a given name and extensions from bas_ext().
These methods can be overridden, but their default implementation provide useful functionality.
Reimplemented from handler.
Definition at line 410 of file ha_perfschema.cc.
|
virtual |
Scan end.
Reimplemented from handler.
Definition at line 308 of file ha_perfschema.cc.
|
virtual |
rnd_init() can be called two times without rnd_end() in between (it only makes sense if scan=1). then the second call should prepare for the new table scan (e.g if rnd_init allocates the cursor, second call should position it to the start of the table, no need to deallocate and allocate it again
Implements handler.
Definition at line 287 of file ha_perfschema.cc.
|
virtual |
Iterator, fetch the next row.
[out] | buf | the row fetched. |
Implements handler.
Definition at line 317 of file ha_perfschema.cc.
|
virtual |
Iterator, fetch the row at a given position.
[out] | buf | the row fetched. |
pos | the row position |
Implements handler.
Definition at line 345 of file ha_perfschema.cc.
|
virtual |
Is not invoked for non-transactional temporary tables.
Implements handler.
Definition at line 393 of file ha_perfschema.cc.
|
inlinevirtual |
Type of table for caching query
Reimplemented from handler.
Definition at line 189 of file ha_perfschema.h.
|
inlinevirtual |
Capabilities of the performance schema tables.
Implements handler.
Definition at line 54 of file ha_perfschema.h.
|
inlinevirtual |
The following can be called without an open handler
Implements handler.
Definition at line 47 of file ha_perfschema.h.
|
virtual |
Quickly remove all rows from a table.
Reimplemented from handler.
Definition at line 388 of file ha_perfschema.cc.
int ha_perfschema::update_row | ( | const uchar * | old_data, |
uchar * | new_data | ||
) |
Update a row.
old_data | the row old values |
new_data | the row new values |
Definition at line 263 of file ha_perfschema.cc.
|
virtual |
use_hidden_primary_key() is called in case of an update/delete when (table_flags() and HA_PRIMARY_KEY_REQUIRED_FOR_DELETE) is defined but we don't have a primary key
Reimplemented from handler.
Definition at line 252 of file ha_perfschema.cc.
int ha_perfschema::write_row | ( | uchar * | buf | ) |
Write a row.
buf | the row to write |
Definition at line 238 of file ha_perfschema.cc.