summaryrefslogtreecommitdiff
path: root/storage/myisam/mi_rkey.c
diff options
context:
space:
mode:
authorunknown <serg@janus.mylan>2007-02-21 11:36:23 +0100
committerunknown <serg@janus.mylan>2007-02-21 11:36:23 +0100
commitbd475445612d312689c70dda67f3ca67c0db7876 (patch)
tree8baa0ee731a4b567ed44cf3227cdb9a926354ef6 /storage/myisam/mi_rkey.c
parent7fa4131274acc7073dc08d1f97eab08c8bd89e39 (diff)
parent6a575c2a91ceb29ffdf14a524be02a6b05e321fd (diff)
downloadmariadb-git-bd475445612d312689c70dda67f3ca67c0db7876.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into janus.mylan:/usr/home/serg/Abk/mysql-5.1 dbug/dbug.c: Auto merged include/my_base.h: Auto merged include/my_global.h: Auto merged sql/event_db_repository.cc: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/ha_ndbcluster.h: Auto merged sql/ha_partition.cc: Auto merged sql/handler.cc: Auto merged sql/item_subselect.cc: Auto merged sql/log.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/opt_range.h: Auto merged sql/opt_sum.cc: Auto merged sql/slave.cc: Auto merged sql/slave.h: Auto merged sql/sp.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_plugin.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_servers.cc: Auto merged sql/sql_servers.h: Auto merged sql/table.cc: Auto merged sql/table.h: Auto merged sql/tztime.cc: Auto merged storage/heap/ha_heap.cc: Auto merged storage/myisammrg/ha_myisammrg.cc: Auto merged support-files/Makefile.am: Auto merged sql/opt_range.cc: manual merge storage/example/ha_example.cc: manual merge storage/federated/ha_federated.cc: manual merge storage/myisam/ha_myisam.cc: manual merge storage/myisam/mi_rkey.c: manual merge
Diffstat (limited to 'storage/myisam/mi_rkey.c')
-rw-r--r--storage/myisam/mi_rkey.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/storage/myisam/mi_rkey.c b/storage/myisam/mi_rkey.c
index 917ba381504..2ff24d565b9 100644
--- a/storage/myisam/mi_rkey.c
+++ b/storage/myisam/mi_rkey.c
@@ -21,8 +21,8 @@
/* Read a record using key */
/* Ordinary search_flag is 0 ; Give error if no record with key */
-int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
- enum ha_rkey_function search_flag)
+int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key,
+ ulonglong keypart_map, enum ha_rkey_function search_flag)
{
uchar *key_buff;
MYISAM_SHARE *share=info->s;
@@ -47,18 +47,17 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
key is already packed!; This happens when we are using a MERGE TABLE
*/
key_buff=info->lastkey+info->s->base.max_key_length;
- pack_key_length= key_len;
- bmove(key_buff,key,key_len);
+ pack_key_length= keypart_map;
+ bmove(key_buff, key, pack_key_length);
last_used_keyseg= 0;
}
else
{
- if (key_len == 0)
- key_len=USE_WHOLE_KEY;
+ DBUG_ASSERT(keypart_map);
/* 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);
+ keypart_map, &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,