ha_innodb.cc:

  Fix bug: InnoDB created all indexes on true VARCHARs as column prefix keys because field->pack_length() for a true VARCHAR is bigger than key_part->length; FOREIGN KEYs could not be created on true VARCHARs then
parent cb88409e
......@@ -4037,7 +4037,11 @@ create_index(
col_type = get_innobase_type_from_mysql_type(key_part->field);
if (DATA_BLOB == col_type
|| key_part->length < field->pack_length()) {
|| (key_part->length < field->pack_length()
&& field->type() != MYSQL_TYPE_VARCHAR)
|| (field->type() == MYSQL_TYPE_VARCHAR
&& key_part->length < field->pack_length()
- ((Field_varstring*)field)->length_bytes)) {
prefix_len = key_part->length;
......
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