diff options
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index f9dea58bb32..1c064d612ba 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3265,8 +3265,6 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, if (key->type == Key::FOREIGN_KEY) { fk_key_count++; - if (((Foreign_key *)key)->validate(alter_info->create_list)) - DBUG_RETURN(TRUE); Foreign_key *fk_key= (Foreign_key*) key; if (fk_key->ref_columns.elements && fk_key->ref_columns.elements != fk_key->columns.elements) @@ -3392,7 +3390,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, if (key->generated) key_info->flags|= HA_GENERATED_KEY; - key_info->key_parts=(uint8) key->columns.elements; + key_info->user_defined_key_parts=(uint8) key->columns.elements; key_info->key_part=key_part_info; key_info->usable_key_parts= key_number; key_info->algorithm= key->key_create_info.algorithm; @@ -3429,7 +3427,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, MYF(0)); DBUG_RETURN(TRUE); } - if (key_info->key_parts != 1) + if (key_info->user_defined_key_parts != 1) { my_error(ER_WRONG_ARGUMENTS, MYF(0), "SPATIAL INDEX"); DBUG_RETURN(TRUE); @@ -3438,7 +3436,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, else if (key_info->algorithm == HA_KEY_ALG_RTREE) { #ifdef HAVE_RTREE_KEYS - if ((key_info->key_parts & 1) == 1) + if ((key_info->user_defined_key_parts & 1) == 1) { my_error(ER_WRONG_ARGUMENTS, MYF(0), "RTREE INDEX"); DBUG_RETURN(TRUE); @@ -4739,8 +4737,8 @@ mysql_rename_table(handlerton *base, const char *old_db, if (likely(error == 0)) { my_bool temp_table= (my_bool)is_prefix(old_name, tmp_file_prefix); - PSI_CALL(drop_table_share)(temp_table, old_db, strlen(old_db), - old_name, strlen(old_name)); + PSI_TABLE_CALL(drop_table_share)(temp_table, old_db, strlen(old_db), + old_name, strlen(old_name)); } #endif @@ -5287,7 +5285,7 @@ mysql_compare_tables(TABLE *table, if (key_info->key_part[j].fieldnr-1 == field->field_index) { (void) delete_statistics_for_index(thd, table, key_info, - j >= key_info->key_parts); + j >= key_info->user_defined_key_parts); break; } } @@ -5321,7 +5319,8 @@ mysql_compare_tables(TABLE *table, for (table_key= table->key_info; table_key < table_key_end; table_key++) { KEY_PART_INFO *table_part; - KEY_PART_INFO *table_part_end= table_key->key_part + table_key->key_parts; + KEY_PART_INFO *table_part_end= (table_key->key_part + + table_key->user_defined_key_parts); KEY_PART_INFO *new_part; /* @@ -5358,7 +5357,7 @@ mysql_compare_tables(TABLE *table, if ((table_key->algorithm != new_key->algorithm) || ((table_key->flags & HA_KEYFLAG_MASK) != (new_key->flags & HA_KEYFLAG_MASK)) || - (table_key->key_parts != new_key->key_parts)) + (table_key->user_defined_key_parts != new_key->user_defined_key_parts)) goto index_changed; /* @@ -5385,7 +5384,7 @@ mysql_compare_tables(TABLE *table, (*index_drop_buffer)[(*index_drop_count)++]= table_key - table->key_info; (*index_add_buffer)[(*index_add_count)++]= new_key - *key_info_buffer; key_part= new_key->key_part; - end= key_part + new_key->key_parts; + end= key_part + new_key->user_defined_key_parts; for(; key_part != end; key_part++) { // Mark field to be part of new key @@ -5400,7 +5399,7 @@ mysql_compare_tables(TABLE *table, KEY *tab_key_info= table->key_info; for (uint j=0; j < table->s->keys; j++, tab_key_info++) { - if (tab_key_info->key_parts != tab_key_info->ext_key_parts) + if (tab_key_info->user_defined_key_parts != tab_key_info->ext_key_parts) (void) delete_statistics_for_index(thd, table, tab_key_info, TRUE); } @@ -5429,7 +5428,7 @@ mysql_compare_tables(TABLE *table, /* Key not found. Add the offset of the key to the add buffer. */ (*index_add_buffer)[(*index_add_count)++]= new_key - *key_info_buffer; key_part= new_key->key_part; - end= key_part + new_key->key_parts; + end= key_part + new_key->user_defined_key_parts; for(; key_part != end; key_part++) { // Mark field to be part of new key @@ -5827,7 +5826,7 @@ mysql_prepare_alter_table(THD *thd, TABLE *table, KEY *tab_key_info= table->key_info; for (uint j=0; j < table->s->keys; j++, tab_key_info++) { - if (tab_key_info->key_parts != tab_key_info->ext_key_parts) + if (tab_key_info->user_defined_key_parts != tab_key_info->ext_key_parts) (void) delete_statistics_for_index(thd, table, tab_key_info, TRUE); } @@ -5840,7 +5839,7 @@ mysql_prepare_alter_table(THD *thd, TABLE *table, KEY_PART_INFO *key_part= key_info->key_part; key_parts.empty(); bool delete_index_stat= FALSE; - for (uint j=0 ; j < key_info->key_parts ; j++,key_part++) + for (uint j=0 ; j < key_info->user_defined_key_parts ; j++,key_part++) { if (!key_part->field) continue; // Wrong field (from UNIREG) @@ -5914,7 +5913,7 @@ mysql_prepare_alter_table(THD *thd, TABLE *table, if (delete_index_stat) (void) delete_statistics_for_index(thd, table, key_info, FALSE); else if (modified_primary_key && - key_info->key_parts != key_info->ext_key_parts) + key_info->user_defined_key_parts != key_info->ext_key_parts) (void) delete_statistics_for_index(thd, table, key_info, TRUE); } @@ -6584,7 +6583,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, } else { - KEY_PART_INFO *part_end= key->key_part + key->key_parts; + KEY_PART_INFO *part_end= key->key_part + key->user_defined_key_parts; bool is_candidate_key= true; /* Non-primary unique key. */ @@ -6627,7 +6626,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, { /* Unique key */ - KEY_PART_INFO *part_end= key->key_part + key->key_parts; + KEY_PART_INFO *part_end= key->key_part + key->user_defined_key_parts; bool is_candidate_key= true; /* @@ -6950,7 +6949,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, /* Copy the KEY struct. */ *key= key_info_buffer[*idx_p]; /* Fix the key parts. */ - part_end= key->key_part + key->key_parts; + part_end= key->key_part + key->user_defined_key_parts; for (key_part= key->key_part; key_part < part_end; key_part++) key_part->field= table->field[key_part->fieldnr]; } @@ -7657,7 +7656,8 @@ copy_data_between_tables(THD *thd, TABLE *from,TABLE *to, (to->key_info[0].key_part[0].field->flags & AUTO_INCREMENT_FLAG)) err_msg= ER(ER_DUP_ENTRY_AUTOINCREMENT_CASE); - to->file->print_keydup_error(key_nr, err_msg, MYF(0)); + to->file->print_keydup_error(table, &table->key_info[key_nr], + err_msg, MYF(0)); break; } } |