diff options
author | unknown <guilhem@gbichot4.local> | 2007-07-27 12:06:39 +0200 |
---|---|---|
committer | unknown <guilhem@gbichot4.local> | 2007-07-27 12:06:39 +0200 |
commit | a3d2ae4648d739a7ec7820e22c05373fde65b770 (patch) | |
tree | 1c7c807fa27f54c3bc16968151fcc79e1f8b4667 /storage/maria/ma_rkey.c | |
parent | 662002fc8f6301ec78d2eca14c5f991212d4f67f (diff) | |
download | mariadb-git-a3d2ae4648d739a7ec7820e22c05373fde65b770.tar.gz |
merging MyISAM changes into Maria (not done in 5.1->maria merge of
Jul 7th). "maria.test" and "ps_maria.test" still fail;
"ma_test_all" starts failing (MyISAM has the same issue see BUG#30094).
include/maria.h:
merging MyISAM changes into Maria
mysys/mf_keycache.c:
mi_test_all showed "floating point exception", this was already
fixed in the latest 5.1, importing fix.
sql/item_xmlfunc.cc:
compiler warning (already fixed in latest 5.1)
storage/maria/ha_maria.cc:
merging MyISAM changes into Maria. See #ifdef ASK_MONTY.
storage/maria/ha_maria.h:
merging MyISAM changes into Maria
storage/maria/ma_cache.c:
merging MyISAM changes into Maria
storage/maria/ma_check.c:
merging MyISAM changes into Maria
storage/maria/ma_create.c:
merging MyISAM changes into Maria
storage/maria/ma_dynrec.c:
merging MyISAM changes into Maria
storage/maria/ma_extra.c:
merging MyISAM changes into Maria
storage/maria/ma_ft_boolean_search.c:
merging MyISAM changes into Maria
storage/maria/ma_ft_nlq_search.c:
merging MyISAM changes into Maria
storage/maria/ma_info.c:
merging MyISAM changes into Maria
storage/maria/ma_key.c:
merging MyISAM changes into Maria
storage/maria/ma_loghandler.c:
compiler warning (part->length is size_t)
storage/maria/ma_open.c:
merging MyISAM changes into Maria
storage/maria/ma_preload.c:
merging MyISAM changes into Maria
storage/maria/ma_range.c:
merging MyISAM changes into Maria
storage/maria/ma_rkey.c:
merging MyISAM changes into Maria
storage/maria/ma_rt_index.c:
merging MyISAM changes into Maria
storage/maria/ma_rt_key.c:
merging MyISAM changes into Maria
storage/maria/ma_rt_split.c:
merging MyISAM changes into Maria
storage/maria/ma_search.c:
merging MyISAM changes into Maria
storage/maria/ma_sort.c:
merging MyISAM changes into Maria
storage/maria/maria_def.h:
merging MyISAM changes into Maria
Diffstat (limited to 'storage/maria/ma_rkey.c')
-rw-r--r-- | storage/maria/ma_rkey.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/storage/maria/ma_rkey.c b/storage/maria/ma_rkey.c index ef8b8468f1f..c9653d30110 100644 --- a/storage/maria/ma_rkey.c +++ b/storage/maria/ma_rkey.c @@ -22,7 +22,7 @@ /* Ordinary search_flag is 0 ; Give error if no record with key */ int maria_rkey(MARIA_HA *info, uchar *buf, int inx, const uchar *key, - uint key_len, enum ha_rkey_function search_flag) + key_part_map keypart_map, enum ha_rkey_function search_flag) { uchar *key_buff; MARIA_SHARE *share=info->s; @@ -47,20 +47,21 @@ int maria_rkey(MARIA_HA *info, uchar *buf, int inx, const uchar *key, 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); - last_used_keyseg= 0; + pack_key_length= keypart_map; + bmove(key_buff, key, pack_key_length); + last_used_keyseg= info->s->keyinfo[inx].seg + info->last_used_keyseg; } 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= _ma_pack_key(info,(uint) inx, key_buff, 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; + info->last_used_keyseg= (uint16) (last_used_keyseg - + info->s->keyinfo[inx].seg); DBUG_EXECUTE("key", _ma_print_key(DBUG_FILE, keyinfo->seg, key_buff, pack_key_length);); } |