mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-6838: Using too big key for internal temp tables
This bug manifests due to wrong computation and evaluation of keyinfo->key_length. The issues were: * Using table->file->max_key_length() as an absolute value that must not be reached for a key, while it represents the maximum number of bytes possible for a table key. * Incorrectly computing the keyinfo->key_length size during KEY_PART_INFO creation. The metadata information regarding the key such the field length (for strings) was added twice.
This commit is contained in:
@@ -1269,7 +1269,7 @@ public:
|
||||
bool add_tmp_key(uint key, uint key_parts,
|
||||
uint (*next_field_no) (uchar *), uchar *arg,
|
||||
bool unique);
|
||||
void create_key_part_by_field(KEY *keyinfo, KEY_PART_INFO *key_part_info,
|
||||
void create_key_part_by_field(KEY_PART_INFO *key_part_info,
|
||||
Field *field, uint fieldnr);
|
||||
void use_index(int key_to_save);
|
||||
void set_table_map(table_map map_arg, uint tablenr_arg)
|
||||
|
Reference in New Issue
Block a user