MySQL 5.6.14 Source Code Document
|
Public Member Functions | |
ha_heap (handlerton *hton, TABLE_SHARE *table) | |
handler * | clone (const char *name, MEM_ROOT *mem_root) |
const char * | table_type () const |
const char * | index_type (uint inx) |
enum row_type | get_row_type () const |
const char ** | bas_ext () const |
ulonglong | table_flags () const |
ulong | index_flags (uint inx, uint part, bool all_parts) const |
const key_map * | keys_to_use_for_scanning () |
uint | max_supported_keys () const |
uint | max_supported_key_part_length () const |
double | scan_time () |
double | read_time (uint index, uint ranges, ha_rows rows) |
int | open (const char *name, int mode, uint test_if_locked) |
int | close (void) |
void | set_keys_for_scanning (void) |
int | write_row (uchar *buf) |
int | update_row (const uchar *old_data, uchar *new_data) |
int | delete_row (const uchar *buf) |
virtual void | get_auto_increment (ulonglong offset, ulonglong increment, ulonglong nb_desired_values, ulonglong *first_value, ulonglong *nb_reserved_values) |
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_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_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_next (uchar *buf) |
int | index_prev (uchar *buf) |
int | index_first (uchar *buf) |
int | index_last (uchar *buf) |
int | rnd_init (bool scan) |
int | rnd_next (uchar *buf) |
int | rnd_pos (uchar *buf, uchar *pos) |
void | position (const uchar *record) |
int | info (uint) |
int | extra (enum ha_extra_function operation) |
int | reset () |
int | external_lock (THD *thd, int lock_type) |
int | delete_all_rows (void) |
int | truncate () |
int | reset_auto_increment (ulonglong value) |
int | disable_indexes (uint mode) |
int | enable_indexes (uint mode) |
int | indexes_are_disabled (void) |
ha_rows | records_in_range (uint inx, key_range *min_key, key_range *max_key) |
int | delete_table (const char *from) |
void | drop_table (const char *name) |
int | rename_table (const char *from, const char *to) |
int | create (const char *name, TABLE *form, HA_CREATE_INFO *create_info) |
void | update_create_info (HA_CREATE_INFO *create_info) |
THR_LOCK_DATA ** | store_lock (THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type) |
int | cmp_ref (const uchar *ref1, const uchar *ref2) |
bool | check_if_incompatible_data (HA_CREATE_INFO *info, uint table_changes) |
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 | 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) |
bool | has_transactions () |
virtual uint | extra_rec_buf_length () const |
virtual bool | is_fatal_error (int error, uint flags) |
virtual ha_rows | records () |
virtual ha_rows | estimate_rows_upper_bound () |
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 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) |
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 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_record_length () const |
virtual uint | max_supported_key_parts () const |
virtual uint | max_supported_key_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 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 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 | 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 | discard_or_import_tablespace (my_bool discard) |
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_next_same (uchar *buf, const uchar *key, uint keylen) |
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 |
|
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 80 of file ha_heap.cc.
|
virtual |
Part of old, deprecated in-place ALTER API.
Reimplemented from handler.
Definition at line 793 of file ha_heap.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 437 of file ha_heap.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 594 of file ha_heap.cc.
|
virtual |
Reserves an interval of auto_increment values from the handler.
offset | offset (modulus increment) | |
increment | increment between calls | |
nb_desired_values | how many values we want | |
[out] | first_value | the first value reserved by the handler |
[out] | nb_reserved_values | how many values the handler reserved |
offset and increment means that we want values to be of the form offset + N * increment, where N>=0 is integer. If the function sets *first_value to ULONGLONG_MAX it means an error. If the function sets *nb_reserved_values to ULONGLONG_MAX it means it has reserved to "positive infinite".
Reimplemented from handler.
Definition at line 781 of file ha_heap.cc.
|
inlinevirtual |
|
virtual |
Reimplemented from handler.
Definition at line 341 of file ha_heap.cc.
|
virtual |
Reimplemented from handler.
Definition at line 352 of file ha_heap.cc.
|
virtual |
Reimplemented from handler.
Definition at line 319 of file ha_heap.cc.
|
virtual |
Reimplemented from handler.
Definition at line 330 of file ha_heap.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 307 of file ha_heap.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 294 of file ha_heap.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 281 of file ha_heap.cc.
|
inlinevirtual |
The cost of reading a set of ranges from the table using an index to access it.
index | The index number. |
ranges | The number of ranges to be read. |
rows | Total number of rows to be read. |
This method can be used to calculate the total cost of scanning a table using an index by calling it using read_time(index, 1, table_size).
Reimplemented from handler.
|
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 608 of file ha_heap.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 431 of file ha_heap.cc.
|
virtual |
Reset the auto-increment counter to the given value, i.e. the next row inserted will get the given value. HA_ERR_WRONG_COMMAND is returned by storage engines that don't support this operation.
Reimplemented from handler.
Definition at line 459 of file ha_heap.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 363 of file ha_heap.cc.
|
virtual |
|
virtual |
|
virtual |
Is not invoked for non-transactional temporary tables.
Implements handler.
Definition at line 579 of file ha_heap.cc.
|
inlinevirtual |
|
virtual |
Quickly remove all rows from a table.
Reimplemented from handler.
Definition at line 452 of file ha_heap.cc.