Commit 46ad86f6 authored by Jan Lindström's avatar Jan Lindström

MDEV-8582: innodb_force_primary_key option does not force PK or unique key

Analysis: Handler used table flag HA_REQUIRE_PRIMARY_KEY but a bug on
sql_table.cc function mysql_prepare_create_table internally marked
secondary key with NOT NULL colums as unique key and did not then
fail on requirement that table should have primary key or unique key.
parent 3307eaab
......@@ -4042,7 +4042,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
my_error(ER_WRONG_NAME_FOR_INDEX, MYF(0), key_info->name);
DBUG_RETURN(TRUE);
}
if (!(key_info->flags & HA_NULL_PART_KEY))
if (key->type == Key::UNIQUE && !(key_info->flags & HA_NULL_PART_KEY))
unique_key=1;
key_info->key_length=(uint16) key_length;
if (key_length > max_key_length && key->type != Key::FULLTEXT)
......
......@@ -11134,11 +11134,6 @@ index_bad:
}
}
if (srv_force_primary_key && form->s->primary_key >= MAX_KEY) {
my_error(ER_REQUIRES_PRIMARY_KEY, MYF(0));
DBUG_RETURN(false);
}
row_format = form->s->row_type;
if (create_info->key_block_size) {
......
......@@ -11645,11 +11645,6 @@ index_bad:
}
}
if (srv_force_primary_key && form->s->primary_key >= MAX_KEY) {
my_error(ER_REQUIRES_PRIMARY_KEY, MYF(0));
DBUG_RETURN(false);
}
row_format = form->s->row_type;
if (create_info->key_block_size) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment