summaryrefslogtreecommitdiff
path: root/sql/structs.h
diff options
context:
space:
mode:
authorVicențiu Ciorbaru <vicentiu@mariadb.org>2015-02-28 23:44:55 +0200
committerVicențiu Ciorbaru <vicentiu@mariadb.org>2015-02-28 23:58:05 +0200
commit45b6edb158f8101d641f550179ee15df363f686f (patch)
tree54b7db48e508cff8fda1c6448038bd0667c48e38 /sql/structs.h
parentfa87fc733d7855e0e5f9b959ca0bddf772ca57e5 (diff)
downloadmariadb-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/structs.h')
-rw-r--r--sql/structs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/structs.h b/sql/structs.h
index ae71819ae09..9840cec6a35 100644
--- a/sql/structs.h
+++ b/sql/structs.h
@@ -76,6 +76,7 @@ typedef struct st_key_part_info { /* Info about a key part */
*/
uint16 store_length;
uint16 key_type;
+ /* Fieldnr begins counting from 1 */
uint16 fieldnr; /* Fieldnum in UNIREG */
uint16 key_part_flag; /* 0 or HA_REVERSE_SORT */
uint8 type;