MySQL 5.6.14 Source Code Document
|
Public Member Functions | |
ha_myisammrg (handlerton *hton, TABLE_SHARE *table_arg) | |
Constructor. | |
~ha_myisammrg () | |
Destructor. | |
const char * | table_type () const |
const char ** | bas_ext () const |
const char * | index_type (uint key_number) |
ulonglong | table_flags () const |
ulong | index_flags (uint inx, uint part, bool all_parts) const |
uint | max_supported_keys () const |
uint | max_supported_key_length () const |
uint | max_supported_key_part_length () const |
double | scan_time () |
int | open (const char *name, int mode, uint test_if_locked) |
int | add_children_list (void) |
int | attach_children (void) |
int | detach_children (void) |
virtual handler * | clone (const char *name, MEM_ROOT *mem_root) |
int | close (void) |
int | write_row (uchar *buf) |
int | update_row (const uchar *old_data, uchar *new_data) |
int | delete_row (const uchar *buf) |
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. | |
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. | |
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. | |
int | index_next (uchar *buf) |
int | index_prev (uchar *buf) |
int | index_first (uchar *buf) |
int | index_last (uchar *buf) |
int | index_next_same (uchar *buf, const uchar *key, uint keylen) |
int | rnd_init (bool scan) |
int | rnd_next (uchar *buf) |
int | rnd_pos (uchar *buf, uchar *pos) |
void | position (const uchar *record) |
ha_rows | records_in_range (uint inx, key_range *min_key, key_range *max_key) |
int | truncate () |
int | info (uint) |
int | reset (void) |
int | extra (enum ha_extra_function operation) |
int | extra_opt (enum ha_extra_function operation, ulong cache_size) |
int | external_lock (THD *thd, int lock_type) |
uint | lock_count (void) const |
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) |
void | update_create_info (HA_CREATE_INFO *create_info) |
void | append_create_info (String *packet) |
MYRG_INFO * | myrg_info () |
TABLE * | table_ptr () |
bool | check_if_incompatible_data (HA_CREATE_INFO *info, uint table_changes) |
int | check (THD *thd, HA_CHECK_OPT *check_opt) |
ha_rows | records () |
Public Member Functions inherited from handler | |
virtual void | unbind_psi () |
virtual void | rebind_psi () |
handler (handlerton *ht_arg, TABLE_SHARE *share_arg) | |
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 void | print_error (int error, myf errflag) |
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 | estimate_rows_upper_bound () |
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 void | get_dynamic_partition_info (PARTITION_STATS *stat_info, uint part_id) |
virtual uint32 | calculate_key_hash_value (Field **field_array) |
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) |
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 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_record_length () const |
virtual uint | max_supported_key_parts () 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 uint8 | table_cache_type () |
virtual my_bool | register_query_cache_table (THD *thd, char *table_key, uint key_length, qc_engine_callback *engine_callback, ulonglong *engine_data) |
Register a named table with a call back function to the query cache. | |
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 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 void | use_hidden_primary_key () |
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 | delete_all_rows () |
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 |
Public Attributes | |
MEM_ROOT | children_mem_root |
List< Mrg_child_def > | child_def_list |
TABLE_LIST * | children_l |
TABLE_LIST ** | children_last_l |
uint | test_if_locked |
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 |
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) |
Protected Member Functions inherited from handler | |
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 | rename_table (const char *from, const char *to) |
virtual int | delete_table (const char *name) |
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 |
Definition at line 67 of file ha_myisammrg.h.
int ha_myisammrg::add_children_list | ( | void | ) |
Add list of MERGE children to a TABLE_LIST chain.
0 | OK |
!= | 0 Error |
When a MERGE parent table has just been opened, insert the TABLE_LIST chain from the MERGE handler into the table list used for opening tables for this statement. This lets the children be opened too.
Definition at line 427 of file ha_myisammrg.cc.
int ha_myisammrg::attach_children | ( | void | ) |
Attach children to a MERGE table.
0 | OK |
!= | 0 Error, my_errno gives reason |
Let the storage engine attach its children through a callback function. Check table definitions for consistency.
Definition at line 782 of file ha_myisammrg.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 174 of file ha_myisammrg.cc.
|
virtual |
Part of old, deprecated in-place ALTER API.
Reimplemented from handler.
Definition at line 1624 of file ha_myisammrg.cc.
Returns a cloned instance of the current handler.
Reimplemented from handler.
Definition at line 716 of file ha_myisammrg.cc.
|
virtual |
Close a MERGE parent table, but not its children.
0 | OK |
!= | 0 Error, my_errno gives reason |
Implements handler.
Definition at line 1054 of file ha_myisammrg.cc.
int ha_myisammrg::detach_children | ( | void | ) |
Detach all children from a MERGE table and from the query list of tables.
0 | OK |
!= | 0 Error, my_errno gives reason |
Definition at line 942 of file ha_myisammrg.cc.
|
virtual |
Reimplemented from handler.
Definition at line 1163 of file ha_myisammrg.cc.
|
virtual |
Reimplemented from handler.
Definition at line 1174 of file ha_myisammrg.cc.
|
virtual |
Reimplemented from handler.
Definition at line 1141 of file ha_myisammrg.cc.
|
virtual |
Reimplemented from handler.
Definition at line 1185 of file ha_myisammrg.cc.
|
virtual |
Reimplemented from handler.
Definition at line 1152 of file ha_myisammrg.cc.
|
virtual |
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.
Reimplemented from handler.
Definition at line 1115 of file ha_myisammrg.cc.
|
virtual |
The following functions works like index_read, but it find the last row with the current key value or prefix.
Reimplemented from handler.
Definition at line 1128 of file ha_myisammrg.cc.
|
virtual |
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.
Reimplemented from handler.
Definition at line 1102 of file ha_myisammrg.cc.
|
virtual |
Reimplemented from handler.
Definition at line 1422 of file ha_myisammrg.cc.
|
virtual |
Open a MERGE parent table, but not its children.
[in] | name | MERGE table path name |
[in] | mode | read/write mode, unused |
[in] | test_if_locked_arg | open flags |
0 | OK |
-1 | Error, my_errno gives reason |
This function initializes the MERGE storage engine structures and adds a child list of TABLE_LIST to the parent handler.
Implements handler.
Definition at line 350 of file ha_myisammrg.cc.
|
virtual |
Number of rows in table. It will only be called if (table_flags() & (HA_HAS_RECORDS | HA_STATS_RECORDS_IS_EXACT)) != 0
Reimplemented from handler.
Definition at line 1641 of file ha_myisammrg.cc.
|
virtual |
Reset state of file to after 'open'. This function is called after every statement for all tables used by that statement.
Reimplemented from handler.
Definition at line 1391 of file ha_myisammrg.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 1203 of file ha_myisammrg.cc.
|
virtual |
Implements handler.
Definition at line 1210 of file ha_myisammrg.cc.
|
virtual |
Implements handler.
Definition at line 1223 of file ha_myisammrg.cc.
|
virtual |
Is not invoked for non-transactional temporary tables.
Implements handler.
Definition at line 1428 of file ha_myisammrg.cc.
|
inlinevirtual |
The following can be called without an open handler
Implements handler.
Definition at line 81 of file ha_myisammrg.h.
|
virtual |
Quickly remove all rows from a table.
Reimplemented from handler.
Definition at line 1251 of file ha_myisammrg.cc.