diff options
author | Mikael Ronstrom <mikael@mysql.com> | 2009-10-28 01:11:17 +0100 |
---|---|---|
committer | Mikael Ronstrom <mikael@mysql.com> | 2009-10-28 01:11:17 +0100 |
commit | 10fed1aca0096acb135c2065233e84d61b00b9cf (patch) | |
tree | 32eac76c7c0b41298c58cd40bc85138e177d8a98 /sql/opt_range.cc | |
parent | cc43a2089cf6f45afb2cb5c15e2a077b075b80f8 (diff) | |
download | mariadb-git-10fed1aca0096acb135c2065233e84d61b00b9cf.tar.gz |
BUG#48165, needed to introduce length restrictions on partitioning fields to ensure that no stack overruns occur
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r-- | sql/opt_range.cc | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 356cfe5e398..19aa06dcae9 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -3600,12 +3600,8 @@ static bool create_partition_index_description(PART_PRUNE_PARAM *ppar) { key_part->key= 0; key_part->part= part; - key_part->store_length= key_part->length= (uint16) (*field)->key_length(); - if ((*field)->real_maybe_null()) - key_part->store_length+= HA_KEY_NULL_LENGTH; - if ((*field)->type() == MYSQL_TYPE_BLOB || - (*field)->real_type() == MYSQL_TYPE_VARCHAR) - key_part->store_length+= HA_KEY_BLOB_LENGTH; + key_part->length= (uint16)get_partition_field_store_length(*field); + key_part->store_length= key_part->length; DBUG_PRINT("info", ("part %u length %u store_length %u", part, key_part->length, key_part->store_length)); |