summaryrefslogtreecommitdiff
path: root/myisam/mi_key.c
diff options
context:
space:
mode:
Diffstat (limited to 'myisam/mi_key.c')
-rw-r--r--myisam/mi_key.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/myisam/mi_key.c b/myisam/mi_key.c
index d64a02ea5f5..bf2f5c292dd 100644
--- a/myisam/mi_key.c
+++ b/myisam/mi_key.c
@@ -181,10 +181,14 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old,
}
else if (keyseg->flag & (HA_VAR_LENGTH | HA_BLOB_PART))
{
- uint tmp_length=uint2korr(pos); pos+=2;
+ /* Length of key-part used with mi_rkey() always 2 */
+ uint tmp_length=uint2korr(pos);
+ k_length-= 2+length;
set_if_smaller(length,tmp_length);
store_key_length_inc(key,length);
- k_length-=2;
+ memcpy((byte*) key, pos+2,(size_t) length);
+ key+= length;
+ continue;
}
else if (keyseg->flag & HA_SWAP_KEY)
{ /* Numerical column */