MDEV-33658 1/2 FULLTEXT and SPATIAL keys are not "too long"
max_key_length applies only to PRIMARY/UNIQUE/MULTIPLE keys,
but not to FULLTEXT/SPATIAL/VECTOR keys.
this fixes main.partition_geometries test
followup for ecaedbe299
This commit is contained in:
parent
7d657fda64
commit
0771110266
1 changed files with 10 additions and 9 deletions
|
@ -2944,7 +2944,7 @@ my_bool init_key_part_spec(THD *thd, Alter_info *alter_info,
|
|||
my_error(ER_WRONG_KEY_COLUMN, MYF(0), file->table_type(), field_name.str);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
if (key_part_length > max_key_part_length && key.type != Key::FULLTEXT)
|
||||
if (key_part_length > max_key_part_length)
|
||||
{
|
||||
if (key.type == Key::MULTIPLE)
|
||||
{
|
||||
|
@ -2956,7 +2956,7 @@ my_bool init_key_part_spec(THD *thd, Alter_info *alter_info,
|
|||
/* Align key length to multibyte char boundary */
|
||||
key_part_length-= key_part_length % column->charset->mbmaxlen;
|
||||
}
|
||||
else if (key.type != Key::UNIQUE)
|
||||
else if (key.type == Key::PRIMARY)
|
||||
{
|
||||
key_part_length= MY_MIN(max_key_length, max_key_part_length);
|
||||
my_error(ER_TOO_LONG_KEY, MYF(0), key_part_length);
|
||||
|
@ -3023,14 +3023,15 @@ my_bool init_key_info(THD *thd, Alter_info *alter_info,
|
|||
DBUG_RETURN(TRUE);
|
||||
|
||||
key.length+= kp.length;
|
||||
if (key.length > max_key_length && key.type == Key::UNIQUE)
|
||||
is_hash_field_needed= true; // for case "a BLOB UNIQUE"
|
||||
|
||||
if (key.length > max_key_length && key.type != Key::FULLTEXT &&
|
||||
!is_hash_field_needed)
|
||||
if (key.length > max_key_length)
|
||||
{
|
||||
my_error(ER_TOO_LONG_KEY, MYF(0), max_key_length);
|
||||
DBUG_RETURN(TRUE);
|
||||
if (key.type == Key::UNIQUE)
|
||||
is_hash_field_needed= true; // for case "a BLOB UNIQUE"
|
||||
else if (key.type <= Key::MULTIPLE)
|
||||
{
|
||||
my_error(ER_TOO_LONG_KEY, MYF(0), max_key_length);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
KEY_CREATE_INFO *key_cinfo= &key.key_create_info;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue