summaryrefslogtreecommitdiff
path: root/myisam/mi_rkey.c
diff options
context:
space:
mode:
authorunknown <ingo@mysql.com>2005-09-23 17:27:07 +0200
committerunknown <ingo@mysql.com>2005-09-23 17:27:07 +0200
commit944db06bbb328288d5e9cfc85de86876895b8b62 (patch)
tree48baa8a8836b9aa39f3616c84580cec8a057ba32 /myisam/mi_rkey.c
parent79b79064fafc92b5b5fcb5402ad7b2bace2cdb77 (diff)
parent9c0d809270a1d74ec33711d94cd65930eab11579 (diff)
downloadmariadb-git-944db06bbb328288d5e9cfc85de86876895b8b62.tar.gz
Merge mysql.com:/home/mydev/mysql-4.1-4100
into mysql.com:/home/mydev/mysql-5.0-5000 myisam/mi_dbug.c: Auto merged myisam/mi_rkey.c: Auto merged myisam/mi_search.c: Auto merged myisam/myisamdef.h: Auto merged mysql-test/r/merge.result: Auto merged mysql-test/t/merge.test: Auto merged
Diffstat (limited to 'myisam/mi_rkey.c')
-rw-r--r--myisam/mi_rkey.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/myisam/mi_rkey.c b/myisam/mi_rkey.c
index 635a7eb2c48..575a5e34488 100644
--- a/myisam/mi_rkey.c
+++ b/myisam/mi_rkey.c
@@ -31,8 +31,8 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
HA_KEYSEG *last_used_keyseg;
uint pack_key_length, use_key_length, nextflag;
DBUG_ENTER("mi_rkey");
- DBUG_PRINT("enter",("base: %lx inx: %d search_flag: %d",
- info,inx,search_flag));
+ DBUG_PRINT("enter", ("base: %p buf: %p inx: %d search_flag: %d",
+ info, buf, inx, search_flag));
if ((inx = _mi_check_index(info,inx)) < 0)
DBUG_RETURN(my_errno);
@@ -56,9 +56,12 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
{
if (key_len == 0)
key_len=USE_WHOLE_KEY;
+ /* Save the packed key for later use in the second buffer of lastkey. */
key_buff=info->lastkey+info->s->base.max_key_length;
pack_key_length=_mi_pack_key(info,(uint) inx, key_buff, (uchar*) key,
key_len, &last_used_keyseg);
+ /* Save packed_key_length for use by the MERGE engine. */
+ info->pack_key_length= pack_key_length;
DBUG_EXECUTE("key",_mi_print_key(DBUG_FILE, keyinfo->seg,
key_buff, pack_key_length););
}