44 #ifndef UNIV_HOTBACKUP
147 dict_col_type_assert_equal(
152 #ifndef UNIV_HOTBACKUP
264 #ifndef UNIV_HOTBACKUP
288 const char* new_name,
289 ibool rename_also_foreigns);
312 ibool check_charsets);
368 const char* sql_string,
397 const char*** constraints_to_drop);
409 const char* table_name,
410 ibool inc_mysql_count);
421 index_id_t index_id);
430 const char* table_name);
439 const char* table_name,
451 const char* table_name);
459 table_id_t table_id);
479 const char** columns,
519 ibool create_table_format,
552 dict_table_get_first_index(
560 dict_table_get_next_index(
564 # define dict_table_get_first_index(table) UT_LIST_GET_FIRST((table)->indexes)
565 # define dict_table_get_next_index(index) UT_LIST_GET_NEXT(indexes, index)
576 __attribute__((pure));
585 __attribute__((pure));
594 __attribute__((pure));
603 __attribute__((pure));
637 dict_table_get_nth_col(
646 dict_table_get_sys_col(
651 #define dict_table_get_nth_col(table, pos) \
652 ((table)->cols + (pos))
653 #define dict_table_get_sys_col(table, sys) \
654 ((table)->cols + (table)->n_cols + (sys) - DATA_N_SYS_COLS)
665 #ifndef UNIV_HOTBACKUP
707 __attribute__((
const));
742 #ifndef UNIV_HOTBACKUP
830 dict_index_get_nth_field(
835 # define dict_index_get_nth_field(index, pos) ((index)->fields + (pos))
916 #ifndef UNIV_HOTBACKUP
936 #ifndef UNIV_HOTBACKUP
945 index_id_t index_id);
946 #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
952 dict_index_get_if_in_cache(
954 index_id_t index_id);
963 dict_index_check_search_tuple(
971 dict_table_check_for_dup_indexes(
1084 ibool only_calc_if_missing_stats);
1160 extern FILE* dict_foreign_err_file;
1161 extern mutex_t dict_foreign_err_mutex;
1219 #include "dict0dict.ic"
dict_table_t * sys_tables
UNIV_INTERN dict_index_t * dict_table_get_index_on_name_and_min_id(dict_table_t *table, const char *name)
UNIV_INLINE ulint dict_index_get_nth_col_no(const dict_index_t *index, ulint pos)
UNIV_INTERN void dict_table_add_to_cache(dict_table_t *table, mem_heap_t *heap)
UNIV_INTERN void dict_print_info_on_foreign_keys(ibool create_table_format, FILE *file, trx_t *trx, dict_table_t *table)
dict_table_t * sys_fields
UNIV_INLINE void dict_table_x_unlock_indexes(dict_table_t *table)
UNIV_INLINE ulint dict_index_is_sec_or_ibuf(const dict_index_t *index) __attribute__((pure))
UNIV_INTERN dtuple_t * dict_index_build_data_tuple(dict_index_t *index, rec_t *rec, ulint n_fields, mem_heap_t *heap)
UNIV_INTERN const char * dict_table_get_col_name(const dict_table_t *table, ulint col_nr)
UNIV_INTERN dtuple_t * dict_index_build_node_ptr(const dict_index_t *index, const rec_t *rec, ulint page_no, mem_heap_t *heap, ulint level)
UNIV_INLINE ulint dict_col_get_max_size(const dict_col_t *col)
UNIV_INTERN ulint dict_index_get_nth_field_pos(const dict_index_t *index, const dict_index_t *index2, ulint n)
UNIV_INLINE ulint dict_index_get_n_fields(const dict_index_t *index)
UNIV_INTERN ulint dict_index_calc_min_rec_len(const dict_index_t *index)
UNIV_INTERN void dict_print_info_on_foreign_key_in_create_format(FILE *file, trx_t *trx, dict_foreign_t *foreign, ibool add_newline)
UNIV_INTERN void dict_table_replace_index_in_foreign_list(dict_table_t *table, dict_index_t *index, const trx_t *trx)
UNIV_INLINE dict_table_t * dict_table_get_on_id_low(table_id_t table_id)
UNIV_INTERN dict_foreign_t * dict_table_get_referenced_constraint(dict_table_t *table, dict_index_t *index)
UNIV_INTERN void dict_table_change_id_in_cache(dict_table_t *table, table_id_t new_id)
UNIV_INTERN void dict_mutex_exit_for_mysql(void)
UNIV_INLINE ulint dict_col_get_mbmaxlen(const dict_col_t *col)
dict_table_t * sys_columns
UNIV_INTERN ibool dict_tables_have_same_db(const char *name1, const char *name2)
UNIV_INLINE ibool dict_table_is_comp(const dict_table_t *table)
UNIV_INTERN void dict_table_print_low(dict_table_t *table)
UNIV_INLINE ulint dict_col_get_clust_pos(const dict_col_t *col, const dict_index_t *clust_index)
UNIV_INTERN void dict_index_add_col(dict_index_t *index, const dict_table_t *table, dict_col_t *col, ulint prefix_len)
UNIV_INLINE ulint dict_table_flags_to_zip_size(ulint flags) __attribute__((const ))
UNIV_INTERN ulint dict_index_get_nth_col_pos(const dict_index_t *index, ulint n)
UNIV_INLINE ulint dict_col_get_fixed_size(const dict_col_t *col, ulint comp)
UNIV_INTERN void dict_update_statistics(dict_table_t *table, ibool only_calc_if_missing_stats)
UNIV_INLINE void dict_index_set_page(dict_index_t *index, ulint page)
UNIV_INLINE ulint dict_col_get_sql_null_size(const dict_col_t *col, ulint comp)
UNIV_INLINE void dict_col_copy_type(const dict_col_t *col, dtype_t *type)
UNIV_INLINE ulint dict_index_get_page(const dict_index_t *tree)
UNIV_INLINE dict_table_t * dict_table_get_low(const char *table_name)
UNIV_INLINE const dict_col_t * dict_index_get_nth_col(const dict_index_t *index, ulint pos)
UNIV_INTERN void dict_load_space_id_list(void)
UNIV_INTERN void dict_index_copy_types(dtuple_t *tuple, const dict_index_t *index, ulint n_fields)
UNIV_INLINE ulint dict_col_get_mbminlen(const dict_col_t *col)
UNIV_INTERN dict_table_t * dict_table_get_on_id(table_id_t table_id, trx_t *trx)
UNIV_INTERN ulint dict_get_db_name_len(const char *name)
UNIV_INTERN void dict_table_copy_types(dtuple_t *tuple, const dict_table_t *table)
UNIV_INTERN ibool dict_index_contains_col_or_prefix(const dict_index_t *index, ulint n)
UNIV_INTERN dict_index_t * dict_table_get_index_on_name(dict_table_t *table, const char *name)
UNIV_INLINE ulint dict_index_get_space(const dict_index_t *index)
UNIV_INTERN void dict_table_autoinc_update_if_greater(dict_table_t *table, ib_uint64_t value)
UNIV_INTERN void dict_close(void)
typedef UT_LIST_BASE_NODE_T(mutex_t) ut_list_base_node_t
UNIV_INLINE ulint dict_index_get_n_unique_in_tree(const dict_index_t *index)
UNIV_INTERN dict_index_t * dict_index_find_on_id_low(index_id_t id)
const char * dict_remove_db_name(const char *name)
UNIV_INTERN void dict_table_print_by_name(const char *name)
hash_table_t * table_id_hash
dict_table_t * sys_indexes
UNIV_INLINE ulint dict_table_zip_size(const dict_table_t *table)
UNIV_INLINE ulint dict_table_get_format(const dict_table_t *table)
UNIV_INTERN ibool dict_table_rename_in_cache(dict_table_t *table, const char *new_name, ibool rename_also_foreigns)
UNIV_INLINE void dict_index_set_space(dict_index_t *index, ulint space)
UNIV_INTERN dict_index_t * dict_index_get_if_in_cache_low(index_id_t index_id)
UNIV_INLINE ulint dict_col_get_no(const dict_col_t *col)
UNIV_INLINE ulint dict_index_is_clust(const dict_index_t *index) __attribute__((pure))
UNIV_INTERN void dict_mutex_enter_for_mysql(void)
UNIV_INLINE void dict_col_set_mbminmaxlen(dict_col_t *col, ulint mbminlen, ulint mbmaxlen)
UNIV_INLINE rw_lock_t * dict_index_get_lock(dict_index_t *index)
UNIV_INTERN void dict_table_add_system_columns(dict_table_t *table, mem_heap_t *heap)
UNIV_INLINE ulint dict_index_get_n_ordering_defined_by_user(const dict_index_t *index)
UNIV_INTERN void dict_table_autoinc_initialize(dict_table_t *table, ib_uint64_t value)
dict_index_t * dict_ind_compact
UNIV_INLINE const dict_col_t * dict_field_get_col(const dict_field_t *field)
UNIV_INLINE ulint dict_index_get_min_size(const dict_index_t *index)
UNIV_INTERN void dict_ind_init(void)
UNIV_INLINE dict_table_t * dict_table_get_low_ignore_err(const char *table_name, dict_err_ignore_t ignore_err)
UNIV_INLINE dict_table_t * dict_table_check_if_in_cache_low(const char *table_name)
UNIV_INTERN ib_uint64_t dict_table_autoinc_read(const dict_table_t *table)
UNIV_INTERN ulint dict_index_add_to_cache(dict_table_t *table, dict_index_t *index, ulint page_no, ibool strict)
UNIV_INTERN dict_index_t * dict_table_get_index_by_max_id(dict_table_t *table, const char *name, const char **columns, ulint n_cols)
UNIV_INLINE ulint dict_table_get_n_sys_cols(const dict_table_t *table)
UNIV_INTERN dict_foreign_t * dict_table_get_foreign_constraint(dict_table_t *table, dict_index_t *index)
UNIV_INTERN void dict_table_stats_lock(const dict_table_t *table, ulint latch_mode)
UNIV_INLINE ulint dict_table_get_n_cols(const dict_table_t *table)
UNIV_INTERN void dict_table_stats_unlock(const dict_table_t *table, ulint latch_mode)
UNIV_INTERN void dict_table_print(dict_table_t *table)
UNIV_INLINE ulint dict_table_get_n_user_cols(const dict_table_t *table)
UNIV_INLINE ulint dict_index_get_n_unique(const dict_index_t *index)
UNIV_INTERN void dict_table_decrement_handle_count(dict_table_t *table, ibool dict_locked)
UNIV_INTERN ulint dict_foreign_parse_drop_constraints(mem_heap_t *heap, trx_t *trx, dict_table_t *table, ulint *n, const char ***constraints_to_drop)
UNIV_INLINE ulint dict_index_get_sys_col_pos(const dict_index_t *index, ulint type)
UNIV_INLINE ulint dict_index_get_space_reserve(void)
UNIV_INTERN void dict_table_autoinc_lock(dict_table_t *table)
UNIV_INLINE ulint dict_index_is_unique(const dict_index_t *index) __attribute__((pure))
UNIV_INTERN ulint dict_table_get_nth_col_pos(const dict_table_t *table, ulint n)
hash_table_t * table_hash
UNIV_INTERN ulint dict_create_foreign_constraints(trx_t *trx, const char *sql_string, size_t sql_length, const char *name, ibool reject_fks)
UNIV_INLINE ulint dict_table_get_sys_col_no(const dict_table_t *table, ulint sys)
UNIV_INTERN ibool dict_table_is_referenced_by_foreign_key(const dict_table_t *table)
UNIV_INTERN dict_index_t * dict_index_get_on_id_low(dict_table_t *table, index_id_t index_id)
UNIV_INTERN dict_table_t * dict_table_get(const char *table_name, ibool inc_mysql_count)
UNIV_INLINE ulint dict_col_get_min_size(const dict_col_t *col)
UNIV_INTERN void dict_table_autoinc_unlock(dict_table_t *table)
UNIV_INTERN void dict_casedn_str(char *a)
UNIV_INTERN rec_t * dict_index_copy_rec_order_prefix(const dict_index_t *index, const rec_t *rec, ulint *n_fields, byte **buf, ulint *buf_size)
UNIV_INTERN dict_index_t * dict_foreign_find_equiv_index(dict_foreign_t *foreign)
UNIV_INTERN ibool dict_col_name_is_reserved(const char *name)
UNIV_INTERN void dict_index_name_print(FILE *file, trx_t *trx, const dict_index_t *index)
UNIV_INTERN void dict_init(void)
UNIV_INLINE void dict_table_x_lock_indexes(dict_table_t *table)
rw_lock_t dict_operation_lock
the data dictionary rw-latch protecting dict_sys
UNIV_INLINE ulint dict_index_is_ibuf(const dict_index_t *index) __attribute__((pure))
UNIV_INTERN ulint dict_foreign_add_to_cache(dict_foreign_t *foreign, ibool check_charsets)
dict_index_t * dict_ind_redundant
UNIV_INTERN void dict_index_remove_from_cache(dict_table_t *table, dict_index_t *index)
UNIV_INLINE void dict_table_set_format(dict_table_t *table, ulint format)
UNIV_INTERN void dict_table_remove_from_cache(dict_table_t *table)
UNIV_INTERN ibool dict_table_col_in_clustered_key(const dict_table_t *table, ulint n)