diff options
author | monty@mashka.mysql.fi <> | 2003-04-27 22:12:08 +0300 |
---|---|---|
committer | monty@mashka.mysql.fi <> | 2003-04-27 22:12:08 +0300 |
commit | dd377bfba62b5f9d8bc43b9d2fdaddbc4107d6e9 (patch) | |
tree | 9cf8ed6360561508fc24e4f8cc90f56282626854 /myisam/mi_key.c | |
parent | 8b20a878cc1f420739a726a9be87d074390b899a (diff) | |
download | mariadb-git-dd377bfba62b5f9d8bc43b9d2fdaddbc4107d6e9.tar.gz |
Fixed problem when comparing a key for a multi-byte-character set. (bug 152)
Use 0x.... as strings if 'new' mode. (bug 152)
Don't report -max on windows when InnoDB is enabled. (bug 332)
Reset current_linfo; This could cause a hang when doing PURGE LOGS.
Fix for row numbers in EXPLAIN (bug 322)
Fix that USE_FRM works for all table types (bug 97)
Diffstat (limited to 'myisam/mi_key.c')
-rw-r--r-- | myisam/mi_key.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/myisam/mi_key.c b/myisam/mi_key.c index 9ec1ca99e0e..5b167cc9ab0 100644 --- a/myisam/mi_key.c +++ b/myisam/mi_key.c @@ -136,11 +136,26 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key, } /* _mi_make_key */ - /* Pack a key to intern format from given format (c_rkey) */ - /* returns length of packed key */ +/* + Pack a key to intern format from given format (c_rkey) + + SYNOPSIS + _mi_pack_key() + info MyISAM handler + uint keynr key number + key Store packed key here + old Not packed key + k_length Length of 'old' to use + last_used_keyseg out parameter. May be NULL + + RETURN + length of packed key + + last_use_keyseg Store pointer to the keyseg after the last used one +*/ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old, - uint k_length) + uint k_length, MI_KEYSEG **last_used_keyseg) { uint length; uchar *pos,*end,*start_key=key; @@ -211,6 +226,8 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old, key+= length; k_length-=length; } + if (last_used_keyseg) + *last_used_keyseg= keyseg; #ifdef NOT_USED if (keyseg->type) |