summaryrefslogtreecommitdiff
path: root/storage/innobase/dict/dict0load.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/dict/dict0load.cc')
-rw-r--r--storage/innobase/dict/dict0load.cc64
1 files changed, 29 insertions, 35 deletions
diff --git a/storage/innobase/dict/dict0load.cc b/storage/innobase/dict/dict0load.cc
index 2889f5d83c8..7f933cde0f6 100644
--- a/storage/innobase/dict/dict0load.cc
+++ b/storage/innobase/dict/dict0load.cc
@@ -233,7 +233,7 @@ dict_get_first_table_name_in_db(
tuple = dtuple_create(heap, 1);
dfield = dtuple_get_nth_field(tuple, 0);
- dfield_set_data(dfield, name, ut_strlen(name));
+ dfield_set_data(dfield, name, strlen(name));
dict_index_copy_types(tuple, sys_index, 1);
btr_pcur_open_on_user_rec(sys_index, tuple, PAGE_CUR_GE,
@@ -255,7 +255,7 @@ loop:
rec, DICT_FLD__SYS_TABLES__NAME, &len);
if (len < strlen(name)
- || ut_memcmp(name, field, strlen(name)) != 0) {
+ || memcmp(name, field, strlen(name))) {
/* Not found */
btr_pcur_close(&pcur);
@@ -528,7 +528,6 @@ dict_process_sys_foreign_rec(
{
ulint len;
const byte* field;
- ulint n_fields_and_type;
if (rec_get_deleted_flag(rec, 0)) {
return("delete-marked record in SYS_FOREIGN");
@@ -586,10 +585,10 @@ err_len:
if (len != 4) {
goto err_len;
}
- n_fields_and_type = mach_read_from_4(field);
+ uint32_t n_fields_and_type = mach_read_from_4(field);
- foreign->type = (unsigned int) (n_fields_and_type >> 24);
- foreign->n_fields = (unsigned int) (n_fields_and_type & 0x3FFUL);
+ foreign->type = n_fields_and_type >> 24 & ((1U << 6) - 1);
+ foreign->n_fields = n_fields_and_type & dict_index_t::MAX_N_FIELDS;
return(NULL);
}
@@ -672,18 +671,13 @@ dict_process_sys_tablespaces(
/*=========================*/
mem_heap_t* heap, /*!< in/out: heap memory */
const rec_t* rec, /*!< in: current SYS_TABLESPACES rec */
- ulint* space, /*!< out: space id */
+ uint32_t* space, /*!< out: tablespace identifier */
const char** name, /*!< out: tablespace name */
ulint* flags) /*!< out: tablespace flags */
{
ulint len;
const byte* field;
- /* Initialize the output values */
- *space = ULINT_UNDEFINED;
- *name = NULL;
- *flags = ULINT_UNDEFINED;
-
if (rec_get_deleted_flag(rec, 0)) {
return("delete-marked record in SYS_TABLESPACES");
}
@@ -738,7 +732,7 @@ dict_process_sys_datafiles(
/*=======================*/
mem_heap_t* heap, /*!< in/out: heap memory */
const rec_t* rec, /*!< in: current SYS_DATAFILES rec */
- ulint* space, /*!< out: space id */
+ uint32_t* space, /*!< out: space id */
const char** path) /*!< out: datafile paths */
{
ulint len;
@@ -1486,7 +1480,8 @@ void dict_check_tablespaces_and_store_max_id()
/* Initialize the max space_id from sys header */
mtr.start();
ulint max_space_id = mach_read_from_4(DICT_HDR_MAX_SPACE_ID
- + dict_hdr_get(&mtr));
+ + DICT_HDR
+ + dict_hdr_get(&mtr)->frame);
mtr.commit();
fil_set_max_space_id_if_bigger(max_space_id);
@@ -1846,7 +1841,6 @@ dict_load_columns(
the flag is set before the table is created. */
if (table->fts == NULL) {
table->fts = fts_create(table);
- fts_optimize_add_table(table);
}
ut_a(table->fts->doc_col == ULINT_UNDEFINED);
@@ -2102,7 +2096,7 @@ err_len:
sys_field->name = mem_heap_strdupl(
heap, (const char*) field, len);
- sys_field->prefix_len = prefix_len;
+ sys_field->prefix_len = prefix_len & ((1U << 12) - 1);
*pos = position;
}
@@ -2331,7 +2325,7 @@ err_len:
(*index)->id = id;
(*index)->page = mach_read_from_4(field);
ut_ad((*index)->page);
- (*index)->merge_threshold = merge_threshold;
+ (*index)->merge_threshold = merge_threshold & ((1U << 6) - 1);
return(NULL);
}
@@ -2698,10 +2692,12 @@ dict_get_and_save_data_dir_path(
if (const char* p = table->space
? table->space->chain.start->name : NULL) {
- table->flags |= (1 << DICT_TF_POS_DATA_DIR);
+ table->flags |= 1 << DICT_TF_POS_DATA_DIR
+ & ((1U << DICT_TF_BITS) - 1);
dict_save_data_dir_path(table, p);
} else if (char* path = dict_get_first_path(table->space_id)) {
- table->flags |= (1 << DICT_TF_POS_DATA_DIR);
+ table->flags |= 1 << DICT_TF_POS_DATA_DIR
+ & ((1U << DICT_TF_BITS) - 1);
dict_save_data_dir_path(table, path);
ut_free(path);
}
@@ -2711,7 +2707,8 @@ dict_get_and_save_data_dir_path(
unset the flag. This does not change SYS_DATAFILES
or SYS_TABLES or FSP_FLAGS on the header page of the
tablespace, but it makes dict_table_t consistent. */
- table->flags &= ~DICT_TF_MASK_DATA_DIR;
+ table->flags &= ~DICT_TF_MASK_DATA_DIR
+ & ((1U << DICT_TF_BITS) - 1);
}
if (!dict_mutex_own) {
@@ -2769,7 +2766,7 @@ dict_load_tablespace(
{
ut_ad(!table->is_temporary());
ut_ad(!table->space);
- ut_ad(table->space_id < SRV_LOG_SPACE_FIRST_ID);
+ ut_ad(table->space_id < SRV_SPACE_ID_UPPER_BOUND);
ut_ad(fil_system.sys_space);
if (table->space_id == TRX_SYS_SPACE) {
@@ -2896,7 +2893,7 @@ dict_load_table_one(
tuple = dtuple_create(heap, 1);
dfield = dtuple_get_nth_field(tuple, 0);
- dfield_set_data(dfield, name.m_name, ut_strlen(name.m_name));
+ dfield_set_data(dfield, name.m_name, strlen(name.m_name));
dict_index_copy_types(tuple, sys_index, 1);
btr_pcur_open_on_user_rec(sys_index, tuple, PAGE_CUR_GE,
@@ -2918,8 +2915,8 @@ err_exit:
rec, DICT_FLD__SYS_TABLES__NAME, &len);
/* Check if the table name in record is the searched one */
- if (len != ut_strlen(name.m_name)
- || 0 != ut_memcmp(name.m_name, field, len)) {
+ if (len != strlen(name.m_name)
+ || memcmp(name.m_name, field, len)) {
goto err_exit;
}
@@ -3081,7 +3078,6 @@ func_exit:
/* the table->fts could be created in dict_load_column
when a user defined FTS_DOC_ID is present, but no
FTS */
- fts_optimize_remove_table(table);
fts_free(table);
} else if (fts_optimize_wq) {
fts_optimize_add_table(table);
@@ -3279,7 +3275,7 @@ dict_load_foreign_cols(
field = rec_get_nth_field_old(
rec, DICT_FLD__SYS_FOREIGN_COLS__ID, &len);
- if (len != id_len || ut_memcmp(foreign->id, field, len) != 0) {
+ if (len != id_len || memcmp(foreign->id, field, len)) {
const rec_t* pos;
ulint pos_len;
const rec_t* for_col_name;
@@ -3379,7 +3375,6 @@ dict_load_foreign(
const rec_t* rec;
const byte* field;
ulint len;
- ulint n_fields_and_type;
mtr_t mtr;
dict_table_t* for_table;
dict_table_t* ref_table;
@@ -3430,8 +3425,7 @@ dict_load_foreign(
field = rec_get_nth_field_old(rec, DICT_FLD__SYS_FOREIGN__ID, &len);
/* Check if the id in record is the searched one */
- if (len != id_len || ut_memcmp(id, field, len) != 0) {
-
+ if (len != id_len || memcmp(id, field, len)) {
{
ib::error err;
err << "Cannot load foreign constraint " << id
@@ -3454,7 +3448,7 @@ dict_load_foreign(
foreign = dict_mem_foreign_create();
- n_fields_and_type = mach_read_from_4(
+ uint32_t n_fields_and_type = mach_read_from_4(
rec_get_nth_field_old(
rec, DICT_FLD__SYS_FOREIGN__N_COLS, &len));
@@ -3462,8 +3456,8 @@ dict_load_foreign(
/* We store the type in the bits 24..29 of n_fields_and_type. */
- foreign->type = (unsigned int) (n_fields_and_type >> 24);
- foreign->n_fields = (unsigned int) (n_fields_and_type & 0x3FFUL);
+ foreign->type = (n_fields_and_type >> 24) & ((1U << 6) - 1);
+ foreign->n_fields = n_fields_and_type & dict_index_t::MAX_N_FIELDS;
foreign->id = mem_heap_strdupl(foreign->heap, id, id_len);
@@ -3590,7 +3584,7 @@ start_load:
tuple = dtuple_create_from_mem(tuple_buf, sizeof(tuple_buf), 1, 0);
dfield = dtuple_get_nth_field(tuple, 0);
- dfield_set_data(dfield, table_name, ut_strlen(table_name));
+ dfield_set_data(dfield, table_name, strlen(table_name));
dict_index_copy_types(tuple, sec_index, 1);
btr_pcur_open_on_user_rec(sec_index, tuple, PAGE_CUR_GE,
@@ -3635,8 +3629,8 @@ loop:
goto next_rec;
}
- if ((innobase_get_lower_case_table_names() != 2)
- && (0 != ut_memcmp(field, table_name, len))) {
+ if (innobase_get_lower_case_table_names() != 2
+ && memcmp(field, table_name, len)) {
goto next_rec;
}