summaryrefslogtreecommitdiff
path: root/storage/myisam
diff options
context:
space:
mode:
authorunknown <svoj@june.mysql.com>2007-04-18 16:35:22 +0500
committerunknown <svoj@june.mysql.com>2007-04-18 16:35:22 +0500
commit78035fb5d5cd237fa545493b644e70118d73bfff (patch)
tree85b7e68bc1525abfdcc7fa3744e12b6f140d2e5c /storage/myisam
parent1ff64d6e1111247536ecc004505ca376df8a58b6 (diff)
parentde15763cfbf230c7fa1333b84a707abc25cde2d6 (diff)
downloadmariadb-git-78035fb5d5cd237fa545493b644e70118d73bfff.tar.gz
Merge mysql.com:/home/svoj/devel/mysql/BUG24342/mysql-5.0-engines
into mysql.com:/home/svoj/devel/mysql/BUG24342/mysql-5.1-engines mysql-test/r/merge.result: Auto merged mysql-test/t/merge.test: Auto merged storage/myisam/mi_rkey.c: Auto merged storage/myisam/myisamdef.h: Auto merged storage/myisammrg/myrg_rkey.c: SCCS merged
Diffstat (limited to 'storage/myisam')
-rw-r--r--storage/myisam/mi_rkey.c3
-rw-r--r--storage/myisam/myisamdef.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/storage/myisam/mi_rkey.c b/storage/myisam/mi_rkey.c
index 373ab303bf0..a4be66bd4f2 100644
--- a/storage/myisam/mi_rkey.c
+++ b/storage/myisam/mi_rkey.c
@@ -49,7 +49,7 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key,
key_buff=info->lastkey+info->s->base.max_key_length;
pack_key_length= keypart_map;
bmove(key_buff, key, pack_key_length);
- last_used_keyseg= 0;
+ last_used_keyseg= info->s->keyinfo[inx].seg + info->last_used_keyseg;
}
else
{
@@ -60,6 +60,7 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key,
keypart_map, &last_used_keyseg);
/* Save packed_key_length for use by the MERGE engine. */
info->pack_key_length= pack_key_length;
+ info->last_used_keyseg= last_used_keyseg - info->s->keyinfo[inx].seg;
DBUG_EXECUTE("key",_mi_print_key(DBUG_FILE, keyinfo->seg,
key_buff, pack_key_length););
}
diff --git a/storage/myisam/myisamdef.h b/storage/myisam/myisamdef.h
index 7325340b970..a491e6d210c 100644
--- a/storage/myisam/myisamdef.h
+++ b/storage/myisam/myisamdef.h
@@ -276,6 +276,7 @@ struct st_myisam_info {
enum ha_rkey_function last_key_func; /* CONTAIN, OVERLAP, etc */
uint save_lastkey_length;
uint pack_key_length; /* For MYISAMMRG */
+ uint16 last_used_keyseg; /* For MyISAMMRG */
int errkey; /* Got last error on this key */
int lock_type; /* How database was locked */
int tmp_lock_type; /* When locked by readinfo */