#include "univ.i"Include dependency graph for data0type.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
| #define DATA_BINARY 4 |
Definition at line 36 of file data0type.h.
Referenced by dict_boot(), dtype_get_max_size(), dtype_is_binary_string_type(), dtype_print(), ibuf_data_init_for_space(), mlog_parse_index(), and pars_resolve_func_data_type().
| #define DATA_BINARY_TYPE 1024 |
Definition at line 138 of file data0type.h.
Referenced by cmp_data_data_slow(), cmp_dtuple_rec_with_match(), cmp_rec_rec_with_match(), cmp_whole_field(), dtype_is_binary_string_type(), dtype_print(), and pars_set_dfield_type().
| #define DATA_BLOB 5 |
Definition at line 37 of file data0type.h.
Referenced by cmp_data_data_slow(), cmp_dtuple_rec_with_match(), cmp_rec_rec_with_match(), cmp_whole_field(), dtype_get_max_size(), dtype_is_binary_string_type(), dtype_is_string_type(), dtype_print(), mlog_open_and_write_index(), pars_set_dfield_type(), rec_convert_dtuple_to_rec_new(), rec_copy_prefix_to_buf(), rec_get_converted_size_new(), rec_init_offsets(), rec_set_nth_field_extern_bit_new(), row_sel_convert_mysql_key_to_innobase(), row_sel_store_mysql_rec(), and sym_tab_add_bound_lit().
| #define DATA_CHAR 2 |
Definition at line 33 of file data0type.h.
Referenced by cmp_data_data_slow(), cmp_dtuple_rec_with_match(), cmp_rec_rec_with_match(), dfield_print(), dfield_print_also_hex(), dtype_get_max_size(), dtype_print(), srv_init(), and sym_tab_add_bound_lit().
| #define DATA_DECIMAL 11 |
Definition at line 52 of file data0type.h.
Referenced by cmp_whole_field(), and dtype_get_max_size().
| #define DATA_DOUBLE 10 |
Definition at line 51 of file data0type.h.
Referenced by cmp_whole_field(), and dtype_get_max_size().
| #define DATA_ENGLISH 4 |
Definition at line 105 of file data0type.h.
Referenced by dtype_print(), page_create(), pars_info_add_str_literal(), pars_resolve_func_data_type(), pars_set_dfield_type(), srv_init(), and sym_tab_add_str_lit().
| #define DATA_ERROR 111 |
| #define DATA_FIXBINARY 3 |
Definition at line 35 of file data0type.h.
Referenced by dtype_get_max_size(), dtype_is_binary_string_type(), dtype_print(), mlog_parse_index(), pars_info_add_dulint_literal(), pars_set_dfield_type(), and sym_tab_add_bound_lit().
| #define DATA_FLOAT 9 |
Definition at line 50 of file data0type.h.
Referenced by cmp_data_data_slow(), cmp_dtuple_rec_with_match(), cmp_rec_rec_with_match(), cmp_whole_field(), and dtype_get_max_size().
| #define DATA_INT 6 |
Definition at line 43 of file data0type.h.
Referenced by cmp_types_are_equal(), dfield_print(), dfield_print_also_hex(), dict_boot(), dtype_get_max_size(), dtype_print(), eval_to_binary(), pars_info_add_int4_literal(), pars_resolve_func_data_type(), pars_set_dfield_type(), row_fetch_store_uint4(), row_mysql_store_col_in_innobase_format(), row_sel_convert_mysql_key_to_innobase(), row_sel_field_store_in_mysql_format(), sym_tab_add_bound_lit(), and sym_tab_add_int_lit().
| #define DATA_LONG_TRUE_VARCHAR 4096 |
Definition at line 146 of file data0type.h.
| #define DATA_MIX_ID 3 |
Definition at line 127 of file data0type.h.
Referenced by dict_table_add_to_cache(), and dtype_print().
| #define DATA_MIX_ID_LEN 9 |
| #define DATA_MTYPE_MAX 63 |
Definition at line 59 of file data0type.h.
| #define DATA_MYSQL 13 |
Definition at line 54 of file data0type.h.
Referenced by cmp_whole_field(), dfield_check_typed(), dfield_check_typed_no_assert(), dtype_get_max_size(), dtype_is_string_type(), dtype_print(), and dtype_validate().
| #define DATA_MYSQL_BINARY_CHARSET_COLL 63 |
Definition at line 16 of file data0type.h.
Referenced by dict_load_columns(), and row_ins_cascade_calc_update_vec().
| #define DATA_MYSQL_LATIN1_SWEDISH_CHARSET_COLL 8 |
Definition at line 15 of file data0type.h.
Referenced by cmp_data_data_slow(), cmp_dtuple_rec_with_match(), and cmp_rec_rec_with_match().
| #define DATA_MYSQL_TRUE_VARCHAR 15 |
| #define DATA_MYSQL_TYPE_MASK 255 |
| #define DATA_N_SYS_COLS 4 |
Definition at line 131 of file data0type.h.
Referenced by dict_create_sys_columns_tuple(), dict_create_sys_fields_tuple(), dict_create_sys_indexes_tuple(), dict_create_sys_tables_tuple(), dict_load_columns(), dict_mem_table_create(), dict_table_add_to_cache(), and dtype_validate().
| #define DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE 6 |
Definition at line 158 of file data0type.h.
Referenced by ibuf_build_entry_from_ibuf_rec(), ibuf_entry_build(), and ibuf_rec_get_volume().
| #define DATA_NOT_NULL 256 |
Definition at line 134 of file data0type.h.
Referenced by dict_create_foreign_constraints_low(), dict_index_add_col(), dict_index_calc_min_rec_len(), dict_table_add_to_cache(), dict_tree_build_node_ptr(), dtype_print(), mlog_open_and_write_index(), mlog_parse_index(), page_create(), pars_set_dfield_type(), rec_convert_dtuple_to_rec_new(), rec_copy_prefix_to_buf(), rec_get_converted_size_new(), rec_init_offsets(), rec_set_nth_field_extern_bit_new(), row_ins_cascade_calc_update_vec(), row_sel_convert_mysql_key_to_innobase(), and srv_init().
| #define DATA_ORDER_NULL_TYPE_BUF_SIZE 4 |
Definition at line 155 of file data0type.h.
Referenced by ibuf_build_entry_from_ibuf_rec(), and ibuf_rec_get_volume().
| #define DATA_ROLL_PTR 2 |
Definition at line 124 of file data0type.h.
Referenced by btr_cur_ins_lock_and_undo(), btr_cur_optimistic_update(), btr_cur_pessimistic_update(), dict_index_build_internal_clust(), dict_table_add_to_cache(), dtype_print(), row_get_rec_sys_field(), row_ins_alloc_sys_fields(), row_set_rec_sys_field(), row_upd_build_difference_binary(), row_upd_index_entry_sys_field(), trx_undo_page_report_modify(), and trx_undo_update_rec_get_update().
| #define DATA_ROLL_PTR_LEN 7 |
Definition at line 125 of file data0type.h.
Referenced by btr_cur_del_mark_set_clust_rec_log(), btr_cur_update_in_place_log(), dict_table_add_to_cache(), dtype_print(), row_ins_alloc_sys_fields(), row_upd_parse_sys_vals(), row_upd_rec_sys_fields_in_recovery(), row_upd_write_sys_vals_to_log(), trx_undo_page_report_modify(), and trx_undo_update_rec_get_update().
| #define DATA_ROW_ID 0 |
Definition at line 118 of file data0type.h.
Referenced by dict_index_build_internal_clust(), dict_table_add_to_cache(), dtype_print(), row_ins_alloc_sys_fields(), and row_sel_store_row_id_to_prebuilt().
| #define DATA_ROW_ID_LEN 6 |
Definition at line 119 of file data0type.h.
Referenced by dict_table_add_to_cache(), dtype_print(), row_ins_alloc_sys_fields(), row_sel_convert_mysql_key_to_innobase(), and row_sel_store_row_id_to_prebuilt().
| #define DATA_SYS 8 |
Definition at line 45 of file data0type.h.
Referenced by dict_table_add_to_cache(), dtype_get_max_size(), dtype_print(), dtype_validate(), row_sel_convert_mysql_key_to_innobase(), and row_table_got_default_clust_index().
| #define DATA_SYS_CHILD 7 |
| #define DATA_TRX_ID 1 |
Definition at line 121 of file data0type.h.
Referenced by btr_cur_optimistic_update(), btr_cur_pessimistic_update(), dict_index_build_internal_clust(), dict_table_add_to_cache(), dtype_print(), row_get_rec_sys_field(), row_ins_alloc_sys_fields(), row_set_rec_sys_field(), row_upd_build_difference_binary(), row_upd_clust_rec_by_insert(), row_upd_index_entry_sys_field(), row_upd_write_sys_vals_to_log(), trx_undo_page_report_modify(), and trx_undo_update_rec_get_update().
| #define DATA_TRX_ID_LEN 6 |
Definition at line 122 of file data0type.h.
Referenced by dict_table_add_to_cache(), dtype_print(), row_ins_alloc_sys_fields(), row_upd_rec_sys_fields_in_recovery(), trx_undo_page_report_modify(), and trx_undo_update_rec_get_update().
| #define DATA_UNSIGNED 512 |
Definition at line 136 of file data0type.h.
Referenced by cmp_types_are_equal(), dtype_print(), pars_set_dfield_type(), row_fetch_store_uint4(), and row_mysql_store_col_in_innobase_format().
| #define DATA_VARCHAR 1 |
Definition at line 27 of file data0type.h.
Referenced by dfield_check_typed(), dfield_check_typed_no_assert(), dfield_print(), dfield_print_also_hex(), dtype_get_max_size(), dtype_print(), dtype_validate(), page_create(), pars_info_add_str_literal(), pars_resolve_func_data_type(), pars_set_dfield_type(), sym_tab_add_bound_lit(), and sym_tab_add_str_lit().
| #define DATA_VARMYSQL 12 |
Definition at line 53 of file data0type.h.
Referenced by cmp_whole_field(), dtype_get_max_size(), and dtype_is_string_type().
| typedef struct dtype_struct dtype_t |
Definition at line 19 of file data0type.h.
Definition at line 170 of file data0type.c.
References ut_a.
Referenced by dict_load_columns().
00172 : the MySQL type code and the flags 00173 DATA_BINARY_TYPE etc. */ 00174 ulint charset_coll) /* in: MySQL charset-collation code */ 00175 { 00176 ut_a(old_prtype < 256 * 256); 00177 ut_a(charset_coll < 256); 00178 00179 return(old_prtype + (charset_coll << 16)); 00180 }
Here is the caller graph for this function:

| ulint dtype_get_at_most_n_mbchars | ( | const dtype_t * | dtype, | |
| ulint | prefix_len, | |||
| ulint | data_len, | |||
| const char * | str | |||
| ) |
Definition at line 52 of file data0type.c.
References dtype_get_charset_coll(), innobase_get_at_most_n_mbchars(), dtype_struct::mbmaxlen, dtype_struct::mbminlen, dtype_struct::prtype, ut_a, ut_ad, and ut_error.
Referenced by row_build_index_entry(), row_build_row_ref(), row_build_row_ref_from_row(), row_build_row_ref_in_tuple(), row_ins_cascade_calc_update_vec(), row_ins_index_entry_set_vals(), row_sel_sec_rec_is_for_clust_rec(), row_upd_index_replace_new_col_vals(), and row_upd_index_replace_new_col_vals_index_pos().
00054 : length of the prefix, 00055 in bytes */ 00056 const dtype_t* dtype, /* in: data type */ 00057 ulint prefix_len, /* in: length of the requested 00058 prefix, in characters, multiplied by 00059 dtype_get_mbmaxlen(dtype) */ 00060 ulint data_len, /* in: length of str (in bytes) */ 00061 const char* str) /* in: the string whose prefix 00062 length is being determined */ 00063 { 00064 #ifndef UNIV_HOTBACKUP 00065 ut_a(data_len != UNIV_SQL_NULL); 00066 ut_ad(!dtype->mbmaxlen || !(prefix_len % dtype->mbmaxlen)); 00067 00068 if (dtype->mbminlen != dtype->mbmaxlen) { 00069 ut_a(!(prefix_len % dtype->mbmaxlen)); 00070 return(innobase_get_at_most_n_mbchars( 00071 dtype_get_charset_coll(dtype->prtype), 00072 prefix_len, data_len, str)); 00073 } 00074 00075 if (prefix_len < data_len) { 00076 00077 return(prefix_len); 00078 00079 } 00080 00081 return(data_len); 00082 #else /* UNIV_HOTBACKUP */ 00083 /* This function depends on MySQL code that is not included in 00084 InnoDB Hot Backup builds. Besides, this function should never 00085 be called in InnoDB Hot Backup. */ 00086 ut_error; 00087 #endif /* UNIV_HOTBACKUP */ 00088 }
Here is the call graph for this function:

Here is the caller graph for this function:

Referenced by cmp_data_data_slow(), cmp_dtuple_rec_with_match(), cmp_rec_rec_with_match(), cmp_types_are_equal(), cmp_whole_field(), dict_load_columns(), dtype_get_at_most_n_mbchars(), dtype_get_charset_coll_noninline(), and row_ins_cascade_calc_update_vec().
Here is the caller graph for this function:

Definition at line 158 of file data0type.c.
References dtype_get_charset_coll().
00160 : precise data type */ 00161 { 00162 return(dtype_get_charset_coll(prtype)); 00163 }
Here is the call graph for this function:

Referenced by btr_index_rec_validate(), dict_index_add_col(), dict_index_build_internal_clust(), and dict_index_calc_min_rec_len().
Here is the caller graph for this function:

Referenced by dict_index_calc_min_rec_len(), ibuf_dummy_index_add_col(), mlog_open_and_write_index(), rec_convert_dtuple_to_rec_new(), rec_copy_prefix_to_buf(), rec_get_converted_size_new(), rec_init_offsets(), rec_set_nth_field_extern_bit_new(), and row_ins_cascade_calc_update_vec().
Here is the caller graph for this function:

Definition at line 302 of file data0type.c.
References DATA_BINARY, DATA_BLOB, DATA_CHAR, DATA_DECIMAL, DATA_DOUBLE, DATA_FIXBINARY, DATA_FLOAT, DATA_INT, DATA_MYSQL, DATA_SYS, DATA_VARCHAR, DATA_VARMYSQL, dtype_struct::len, dtype_struct::mtype, and ut_error.
Referenced by dict_table_add_to_cache().
00304 : maximum size (ULINT_MAX for 00305 unbounded types) */ 00306 const dtype_t* type) /* in: type */ 00307 { 00308 switch (type->mtype) { 00309 case DATA_SYS: 00310 case DATA_CHAR: 00311 case DATA_FIXBINARY: 00312 case DATA_INT: 00313 case DATA_FLOAT: 00314 case DATA_DOUBLE: 00315 case DATA_MYSQL: 00316 case DATA_VARCHAR: 00317 case DATA_BINARY: 00318 case DATA_DECIMAL: 00319 case DATA_VARMYSQL: 00320 return(type->len); 00321 case DATA_BLOB: 00322 return(ULINT_MAX); 00323 default: 00324 ut_error; 00325 } 00326 00327 return(ULINT_MAX); 00328 }
Here is the caller graph for this function:

Referenced by dict_build_table_def_step(), and row_ins_cascade_calc_update_vec().
Here is the caller graph for this function:

Referenced by dfield_print(), dfield_print_also_hex(), eval_to_binary(), ibuf_dummy_index_add_col(), mlog_open_and_write_index(), pars_assignment_statement(), pars_resolve_func_data_type(), rec_convert_dtuple_to_rec_new(), rec_copy_prefix_to_buf(), rec_get_converted_size_new(), rec_init_offsets(), rec_set_nth_field_extern_bit_new(), row_fetch_store_uint4(), and row_table_got_default_clust_index().
Here is the caller graph for this function:

Referenced by cmp_data_data_slow(), cmp_dtuple_rec_with_match(), and cmp_rec_rec_with_match().
Here is the caller graph for this function:

Referenced by dict_index_add_col(), dict_index_calc_min_rec_len(), ibuf_dummy_index_add_col(), mlog_open_and_write_index(), rec_convert_dtuple_to_rec_new(), rec_copy_prefix_to_buf(), rec_get_converted_size_new(), rec_init_offsets(), rec_set_nth_field_extern_bit_new(), row_fetch_store_uint4(), and row_ins_cascade_calc_update_vec().
Here is the caller graph for this function:

Referenced by ibuf_rec_get_volume(), rec_convert_dtuple_to_rec_old(), and row_upd_changes_field_size_or_external().
Here is the caller graph for this function:

Definition at line 116 of file data0type.c.
References DATA_BINARY, DATA_BINARY_TYPE, DATA_BLOB, DATA_FIXBINARY, FALSE, and TRUE.
Referenced by cmp_types_are_equal(), dict_load_columns(), and dtype_is_non_binary_string_type().
00118 : TRUE if binary string type */ 00119 ulint mtype, /* in: main data type */ 00120 ulint prtype) /* in: precise type */ 00121 { 00122 if ((mtype == DATA_FIXBINARY) 00123 || (mtype == DATA_BINARY) 00124 || (mtype == DATA_BLOB && (prtype & DATA_BINARY_TYPE))) { 00125 00126 return(TRUE); 00127 } 00128 00129 return(FALSE); 00130 }
Here is the caller graph for this function:

| UNIV_INLINE ibool dtype_is_fixed_size | ( | dtype_t * | type | ) |
Definition at line 139 of file data0type.c.
References dtype_is_binary_string_type(), dtype_is_string_type(), FALSE, and TRUE.
Referenced by cmp_types_are_equal().
00141 : TRUE if non-binary string type */ 00142 ulint mtype, /* in: main data type */ 00143 ulint prtype) /* in: precise type */ 00144 { 00145 if (dtype_is_string_type(mtype) == TRUE 00146 && dtype_is_binary_string_type(mtype, prtype) == FALSE) { 00147 00148 return(TRUE); 00149 } 00150 00151 return(FALSE); 00152 }
Here is the call graph for this function:

Here is the caller graph for this function:

| ibool dtype_is_string_type | ( | ulint | mtype | ) |
Definition at line 95 of file data0type.c.
References DATA_BLOB, DATA_MYSQL, DATA_VARMYSQL, FALSE, and TRUE.
Referenced by dict_load_columns(), and dtype_is_non_binary_string_type().
00097 : TRUE if string type */ 00098 ulint mtype) /* in: InnoDB main data type code: DATA_CHAR, ... */ 00099 { 00100 if (mtype <= DATA_BLOB 00101 || mtype == DATA_MYSQL 00102 || mtype == DATA_VARMYSQL) { 00103 00104 return(TRUE); 00105 } 00106 00107 return(FALSE); 00108 }
Here is the caller graph for this function:

Referenced by ibuf_build_entry_from_ibuf_rec(), and ibuf_rec_get_volume().
Here is the caller graph for this function:

| void dtype_print | ( | dtype_t * | type | ) |
Definition at line 207 of file data0type.c.
References DATA_BINARY, DATA_BINARY_TYPE, DATA_BLOB, DATA_CHAR, DATA_ENGLISH, DATA_FIXBINARY, DATA_INT, DATA_MIX_ID, DATA_MYSQL, DATA_NOT_NULL, DATA_ROLL_PTR, DATA_ROLL_PTR_LEN, DATA_ROW_ID, DATA_ROW_ID_LEN, DATA_SYS, DATA_TRX_ID, DATA_TRX_ID_LEN, DATA_UNSIGNED, DATA_VARCHAR, dtype_struct::len, dtype_struct::mtype, dtype_struct::prec, dtype_struct::prtype, and ut_a.
Referenced by dict_col_print_low(), and row_fetch_print().
00209 : type */ 00210 { 00211 ulint mtype; 00212 ulint prtype; 00213 ulint len; 00214 00215 ut_a(type); 00216 00217 mtype = type->mtype; 00218 prtype = type->prtype; 00219 00220 switch (mtype) { 00221 case DATA_VARCHAR: 00222 fputs("DATA_VARCHAR", stderr); 00223 break; 00224 00225 case DATA_CHAR: 00226 fputs("DATA_CHAR", stderr); 00227 break; 00228 00229 case DATA_BINARY: 00230 fputs("DATA_BINARY", stderr); 00231 break; 00232 00233 case DATA_FIXBINARY: 00234 fputs("DATA_FIXBINARY", stderr); 00235 break; 00236 00237 case DATA_BLOB: 00238 fputs("DATA_BLOB", stderr); 00239 break; 00240 00241 case DATA_INT: 00242 fputs("DATA_INT", stderr); 00243 break; 00244 00245 case DATA_MYSQL: 00246 fputs("DATA_MYSQL", stderr); 00247 break; 00248 00249 case DATA_SYS: 00250 fputs("DATA_SYS", stderr); 00251 break; 00252 00253 default: 00254 fprintf(stderr, "type %lu", (ulong) mtype); 00255 break; 00256 } 00257 00258 len = type->len; 00259 00260 if ((type->mtype == DATA_SYS) 00261 || (type->mtype == DATA_VARCHAR) 00262 || (type->mtype == DATA_CHAR)) { 00263 putc(' ', stderr); 00264 if (prtype == DATA_ROW_ID) { 00265 fputs("DATA_ROW_ID", stderr); 00266 len = DATA_ROW_ID_LEN; 00267 } else if (prtype == DATA_ROLL_PTR) { 00268 fputs("DATA_ROLL_PTR", stderr); 00269 len = DATA_ROLL_PTR_LEN; 00270 } else if (prtype == DATA_TRX_ID) { 00271 fputs("DATA_TRX_ID", stderr); 00272 len = DATA_TRX_ID_LEN; 00273 } else if (prtype == DATA_MIX_ID) { 00274 fputs("DATA_MIX_ID", stderr); 00275 } else if (prtype == DATA_ENGLISH) { 00276 fputs("DATA_ENGLISH", stderr); 00277 } else { 00278 fprintf(stderr, "prtype %lu", (ulong) prtype); 00279 } 00280 } else { 00281 if (prtype & DATA_UNSIGNED) { 00282 fputs(" DATA_UNSIGNED", stderr); 00283 } 00284 00285 if (prtype & DATA_BINARY_TYPE) { 00286 fputs(" DATA_BINARY_TYPE", stderr); 00287 } 00288 00289 if (prtype & DATA_NOT_NULL) { 00290 fputs(" DATA_NOT_NULL", stderr); 00291 } 00292 } 00293 00294 fprintf(stderr, " len %lu prec %lu", (ulong) len, (ulong) type->prec); 00295 }
Here is the caller graph for this function:

Referenced by ibuf_build_entry_from_ibuf_rec(), and ibuf_rec_get_volume().
Here is the caller graph for this function:

Referenced by dict_mem_table_add_col(), dict_tree_build_node_ptr(), page_create(), pars_resolve_func_data_type(), pars_set_dfield_type(), sym_tab_add_bound_lit(), sym_tab_add_int_lit(), and sym_tab_add_str_lit().
Here is the caller graph for this function:

| ibool dtype_validate | ( | dtype_t * | type | ) |
Definition at line 186 of file data0type.c.
References DATA_MYSQL, DATA_MYSQL_TYPE_MASK, DATA_N_SYS_COLS, DATA_SYS, DATA_VARCHAR, dtype_struct::mbmaxlen, dtype_struct::mbminlen, dtype_struct::mtype, dtype_struct::prtype, TRUE, and ut_a.
Referenced by cmp_data_data_slow().
00188 : TRUE if ok */ 00189 dtype_t* type) /* in: type struct to validate */ 00190 { 00191 ut_a(type); 00192 ut_a((type->mtype >= DATA_VARCHAR) && (type->mtype <= DATA_MYSQL)); 00193 00194 if (type->mtype == DATA_SYS) { 00195 ut_a((type->prtype & DATA_MYSQL_TYPE_MASK) < DATA_N_SYS_COLS); 00196 } 00197 00198 ut_a(type->mbminlen <= type->mbmaxlen); 00199 00200 return(TRUE); 00201 }
Here is the caller graph for this function:

1.4.7

