diff options
author | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2015-02-28 23:44:55 +0200 |
---|---|---|
committer | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2015-02-28 23:58:05 +0200 |
commit | 45b6edb158f8101d641f550179ee15df363f686f (patch) | |
tree | 54b7db48e508cff8fda1c6448038bd0667c48e38 /sql/table.h | |
parent | fa87fc733d7855e0e5f9b959ca0bddf772ca57e5 (diff) | |
download | mariadb-git-45b6edb158f8101d641f550179ee15df363f686f.tar.gz |
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.
Diffstat (limited to 'sql/table.h')
-rw-r--r-- | sql/table.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/table.h b/sql/table.h index 7a1e380f14c..832445486ab 100644 --- a/sql/table.h +++ b/sql/table.h @@ -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) |