summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
authorSachin <sachin.setiya@mariadb.com>2020-06-03 13:36:36 +0530
committerSachin <sachin.setiya@mariadb.com>2020-06-03 13:47:39 +0530
commit7df57cc82062cbe808ef63f43009731065310398 (patch)
tree488f8e2325fa84d3629238284366d8c659db87a2 /sql/sql_table.cc
parent0f91c62d332be5cf53f59901562a7bd6e1683a57 (diff)
downloadmariadb-git-bb-10.4-sachin2.tar.gz
MDEV-22719 Long unique keys are not created when individual key_part->length < max_key_length but SUM(key_parts->length) > max_key_lengthbb-10.4-sachin2
Make UNIQUE HASH key in case when key_info->key_length > max_key_length
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r--sql/sql_table.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 4498e1d1c51..77b7070743c 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -4171,6 +4171,8 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
if (key->type == Key::UNIQUE && !(key_info->flags & HA_NULL_PART_KEY))
unique_key=1;
key_info->key_length=(uint16) key_length;
+ if (key_info->key_length > max_key_length && key->type == Key::UNIQUE)
+ is_hash_field_needed= true;
if (key_length > max_key_length && key->type != Key::FULLTEXT &&
!is_hash_field_needed)
{