1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Fix for Bug#17888 DD: ADD INDEX causes error 756 'Index on disk column is not supported

This commit is contained in:
unknown
2006-03-06 10:24:06 +01:00
parent 7464c9f379
commit 5465a14899
3 changed files with 20 additions and 8 deletions

View File

@@ -3706,6 +3706,8 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
uint changes= 0, tmp;
List_iterator_fast<create_field> new_field_it(*create_list);
create_field *new_field;
KEY_PART_INFO *key_part;
KEY_PART_INFO *end;
DBUG_ENTER("compare_tables");
/*
@@ -3833,9 +3835,14 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
/* Key modified. Add the offset of the key to both buffers. */
index_drop_buffer[(*index_drop_count)++]= table_key - table->key_info;
index_add_buffer[(*index_add_count)++]= new_key - key_info_buffer;
field= table->field[new_key->key_part->fieldnr];
// Mark field to be part of new key
field->add_index= 1;
key_part= new_key->key_part;
end= key_part + new_key->key_parts;
for(; key_part != end; key_part++)
{
// Mark field to be part of new key
field= table->field[key_part->fieldnr];
field->add_index= 1;
}
DBUG_PRINT("info", ("index changed: '%s'", table_key->name));
}
/*end of for (; table_key < table_key_end;) */
@@ -3855,9 +3862,14 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
{
/* Key not found. Add the offset of the key to the add buffer. */
index_add_buffer[(*index_add_count)++]= new_key - key_info_buffer;
field= table->field[new_key->key_part->fieldnr];
// Mark field to be part of new key
field->add_index= 1;
key_part= new_key->key_part;
end= key_part + new_key->key_parts;
for(; key_part != end; key_part++)
{
// Mark field to be part of new key
field= table->field[key_part->fieldnr];
field->add_index= 1;
}
DBUG_PRINT("info", ("index added: '%s'", new_key->name));
}
}