#include <dict0mem.h>
Public Attributes | |
index_id_t | id |
mem_heap_t * | heap |
const char * | name |
const char * | table_name |
dict_table_t * | table |
unsigned | space:32 |
unsigned | page:32 |
unsigned | type:4 |
unsigned | trx_id_offset:10 |
unsigned | n_user_defined_cols:10 |
unsigned | n_uniq:10 |
unsigned | n_def:10 |
unsigned | n_fields:10 |
unsigned | n_nullable:10 |
unsigned | cached:1 |
unsigned | to_be_dropped:1 |
unsigned | corrupted:1 |
dict_field_t * | fields |
indexes | |
btr_search_t * | search_info |
rw_lock_t | lock |
trx_id_t | trx_id |
ib_int64_t * | stat_n_diff_key_vals |
ib_int64_t * | stat_n_non_null_key_vals |
ulint | stat_index_size |
ulint | stat_n_leaf_pages |
Data structure for an index. Most fields will be initialized to 0, NULL or FALSE in dict_mem_index_create().
Definition at line 336 of file dict0mem.h.
unsigned dict_index_struct::cached |
TRUE if the index object is in the dictionary cache
Definition at line 363 of file dict0mem.h.
Referenced by mlog_parse_index().
unsigned dict_index_struct::corrupted |
TRUE if the index object is corrupted
Definition at line 369 of file dict0mem.h.
dict_field_t* dict_index_struct::fields |
array of field descriptions
Definition at line 371 of file dict0mem.h.
Referenced by innobase_match_index_columns(), and mlog_parse_index().
mem_heap_t* dict_index_struct::heap |
memory heap
Definition at line 338 of file dict0mem.h.
Referenced by dict_index_add_to_cache(), dict_index_remove_from_cache(), and dict_mem_index_free().
index_id_t dict_index_struct::id |
id of the index
Definition at line 337 of file dict0mem.h.
Referenced by btr_cur_open_at_rnd_pos_func(), btr_cur_search_to_nth_level(), btr_search_drop_page_hash_index(), btr_search_guess_on_hash(), btr_search_update_hash_on_delete(), btr_search_update_hash_on_insert(), dict_boot(), dict_create_index_step(), dict_index_find_on_id_low(), dict_index_get_on_id_low(), dict_table_get_index_by_max_id(), dict_table_get_index_on_name_and_min_id(), dict_truncate_index_tree(), and row_merge_drop_index().
dict_index_struct::indexes |
list of indexes of the table
Definition at line 374 of file dict0mem.h.
Referenced by drizzled::TableShare::fieldInPrimaryKey().
rw_lock_t dict_index_struct::lock |
read-write lock protecting the upper levels of the index tree
Definition at line 399 of file dict0mem.h.
Referenced by dict_index_add_to_cache(), and dict_index_remove_from_cache().
unsigned dict_index_struct::n_def |
number of fields defined so far
Definition at line 360 of file dict0mem.h.
Referenced by dict_index_add_col(), dict_index_add_to_cache(), dict_load_field_low(), and dict_mem_index_add_field().
unsigned dict_index_struct::n_fields |
number of fields in the index
Definition at line 361 of file dict0mem.h.
Referenced by ha_innobase::change_active_index(), dict_index_add_to_cache(), innobase_match_index_columns(), and row_create_prebuilt().
unsigned dict_index_struct::n_nullable |
number of nullable fields
Definition at line 362 of file dict0mem.h.
Referenced by dict_index_add_col(), rec_convert_dtuple_to_rec_comp(), rec_copy_prefix_to_buf(), rec_get_converted_size_comp_prefix(), rec_get_n_extern_new(), rec_get_offsets_reverse(), and rec_init_offsets_comp_ordinary().
unsigned dict_index_struct::n_uniq |
number of fields from the beginning which are enough to determine an index entry uniquely
Definition at line 357 of file dict0mem.h.
Referenced by dict_index_add_to_cache(), ha_innobase::info(), mlog_parse_index(), and row_upd_rec_in_place().
unsigned dict_index_struct::n_user_defined_cols |
number of columns the user defined to be in the index: in the internal representation we add more columns
Definition at line 353 of file dict0mem.h.
Referenced by innobase_match_index_columns().
const char* dict_index_struct::name |
index name
Definition at line 339 of file dict0mem.h.
Referenced by btr_search_drop_page_hash_index(), ha_innobase::check(), dict_index_name_print(), dict_index_remove_from_cache(), dict_table_get_index_by_max_id(), dict_table_get_index_on_name(), dict_table_get_index_on_name_and_min_id(), ha_innobase::get_foreign_key_list(), ha_innobase::info(), ha_innobase::innobase_get_index(), innobase_get_mysql_key_number_for_index(), lock_rec_get_index_name(), lock_rec_insert_check_and_lock(), page_validate(), row_build_row_ref_in_tuple(), row_ins_check_foreign_constraint(), row_merge_drop_temp_indexes(), row_merge_rename_indexes(), and trx_undo_prev_version_build().
unsigned dict_index_struct::page |
index tree root page number
Definition at line 345 of file dict0mem.h.
Referenced by dict_create_index_step(), dict_index_add_to_cache(), and dict_truncate_index_tree().
btr_search_t* dict_index_struct::search_info |
info used in optimistic searches
Definition at line 375 of file dict0mem.h.
Referenced by btr_search_drop_page_hash_index(), dict_index_add_to_cache(), and dict_index_remove_from_cache().
unsigned dict_index_struct::space |
space where the index tree is placed
Definition at line 343 of file dict0mem.h.
Referenced by row_truncate_table_for_mysql().
ulint dict_index_struct::stat_index_size |
approximate index size in database pages
Definition at line 392 of file dict0mem.h.
Referenced by btr_estimate_number_of_different_key_vals(), dict_index_add_to_cache(), and dict_update_statistics().
ib_int64_t* dict_index_struct::stat_n_diff_key_vals |
Statistics for query optimization approximate number of different key values for this index, for each n-column prefix where n <= dict_get_n_unique(index); we periodically calculate new estimates
Definition at line 379 of file dict0mem.h.
Referenced by btr_estimate_number_of_different_key_vals(), dict_index_add_to_cache(), dict_update_statistics(), and innodb_rec_per_key().
ulint dict_index_struct::stat_n_leaf_pages |
approximate number of leaf pages in the index tree
Definition at line 395 of file dict0mem.h.
Referenced by btr_estimate_number_of_different_key_vals(), dict_index_add_to_cache(), dict_update_statistics(), and ha_innobase::estimate_rows_upper_bound().
dict_table_t* dict_index_struct::table |
back pointer to table
Definition at line 341 of file dict0mem.h.
Referenced by btr_compress(), btr_create(), btr_cur_del_mark_set_clust_rec(), btr_cur_del_mark_set_sec_rec(), btr_cur_open_at_rnd_pos_func(), btr_cur_optimistic_update(), btr_cur_parse_del_mark_set_clust_rec(), btr_cur_parse_update_in_place(), btr_cur_search_to_nth_level(), btr_cur_update_in_place(), btr_discard_page(), btr_estimate_n_rows_in_range(), btr_index_rec_validate(), btr_page_alloc(), build_template(), dict_index_add_to_cache(), dict_index_build_data_tuple(), dict_index_build_node_ptr(), dict_index_calc_min_rec_len(), dict_index_contains_col_or_prefix(), dict_index_copy_rec_order_prefix(), dict_index_get_nth_col_pos(), dtuple_convert_big_rec(), ibuf_insert(), innobase_get_mysql_key_number_for_index(), ha_innobase::innobase_initialize_autoinc(), innobase_rec_to_mysql(), lock_clust_rec_modify_check_and_lock(), lock_clust_rec_read_check_and_lock(), lock_rec_insert_check_and_lock(), lock_sec_rec_modify_check_and_lock(), lock_sec_rec_read_check_and_lock(), mlog_open_and_write_index(), mlog_parse_index(), opt_find_all_cols(), page_copy_rec_list_end_no_locks(), page_create_zip(), page_cur_delete_rec(), page_cur_insert_rec_low(), page_cur_insert_rec_zip(), page_cur_parse_insert_rec(), page_delete_rec_list_start(), page_parse_delete_rec_list(), page_print_list(), page_validate(), rec_convert_dtuple_to_rec(), rec_convert_dtuple_to_rec_comp(), rec_copy_prefix_to_buf(), rec_copy_prefix_to_dtuple(), rec_get_n_extern_new(), rec_get_offsets_func(), rec_get_offsets_reverse(), rec_print(), row_build(), row_build_row_ref(), row_build_row_ref_in_tuple(), row_get_clust_rec(), row_ins_index_entry(), row_search_for_mysql(), row_sel_convert_mysql_key_to_innobase(), row_upd_index_replace_new_col_vals(), row_upd_index_replace_new_col_vals_index_pos(), row_upd_replace(), row_vers_impl_x_locked_off_kernel(), row_vers_old_has_index_entry(), trx_undo_prev_version_build(), and trx_undo_rec_get_partial_row().
const char* dict_index_struct::table_name |
table name
Definition at line 340 of file dict0mem.h.
Referenced by dict_index_add_to_cache(), dict_index_name_print(), dict_table_rename_in_cache(), row_build_row_ref_in_tuple(), row_create_index_for_mysql(), trx_undo_prev_version_build(), and trx_undo_update_rec_get_update().
unsigned dict_index_struct::to_be_dropped |
TRUE if this index is marked to be dropped in ha_innobase::prepare_drop_index(), otherwise FALSE
Definition at line 365 of file dict0mem.h.
trx_id_t dict_index_struct::trx_id |
id of the transaction that created this index, or 0 if the index existed when InnoDB was started up
Definition at line 401 of file dict0mem.h.
Referenced by row_merge_create_index(), and row_merge_is_index_usable().
unsigned dict_index_struct::trx_id_offset |
position of the trx id column in a clustered index record, if the fields before it are known to be of a fixed size, 0 otherwise
Definition at line 349 of file dict0mem.h.
Referenced by row_unlock_for_mysql().
unsigned dict_index_struct::type |
index type (DICT_CLUSTERED, DICT_UNIQUE, DICT_UNIVERSAL, DICT_IBUF)
Definition at line 347 of file dict0mem.h.
Referenced by btr_index_rec_validate(), cmp_rec_rec_with_match(), dict_index_add_to_cache(), dict_index_build_node_ptr(), dict_index_copy_rec_order_prefix(), dict_index_copy_types(), mlog_parse_index(), and row_build_index_entry().