summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <serg@serg.mysql.com>2001-05-24 13:19:57 +0200
committerunknown <serg@serg.mysql.com>2001-05-24 13:19:57 +0200
commitbf79d385938f4f5cdf5f93de3ff995fb27022c95 (patch)
tree746d2ca21a1780885445dad24008abe5aeca866f /myisam
parent5ec74dda9bb5970f8fbba559e47c19a2b6e91561 (diff)
parent1c8902e4ef6e57b648fcd9978bc1e20e917df40b (diff)
downloadmariadb-git-bf79d385938f4f5cdf5f93de3ff995fb27022c95.tar.gz
Merge work:/home/bk/mysql-4.0
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0
Diffstat (limited to 'myisam')
-rw-r--r--myisam/ft_boolean_search.c2
-rw-r--r--myisam/mi_extra.c14
-rw-r--r--myisam/myisamlog.c2
3 files changed, 13 insertions, 5 deletions
diff --git a/myisam/ft_boolean_search.c b/myisam/ft_boolean_search.c
index f0865932ca0..8f7f8ab5d73 100644
--- a/myisam/ft_boolean_search.c
+++ b/myisam/ft_boolean_search.c
@@ -198,7 +198,7 @@ FT_DOCLIST *ft_boolean_search(MI_INFO *info, uint keynr, byte *query,
aio.end=query+query_len;
aio.total_yes=aio.total_no=0;
- init_tree(&aio.dtree,0,sizeof(FT_SUPERDOC),(qsort_cmp)&FT_SUPERDOC_cmp,0,
+ init_tree(&aio.dtree,0,sizeof(FT_SUPERDOC),(qsort_cmp2)&FT_SUPERDOC_cmp,0,
NULL);
if (do_boolean(&aio,0,0,0,0))
diff --git a/myisam/mi_extra.c b/myisam/mi_extra.c
index cf075512ac4..e1e4fe75a07 100644
--- a/myisam/mi_extra.c
+++ b/myisam/mi_extra.c
@@ -219,9 +219,17 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function)
}
if (share->state.key_map)
{
- share->state.key_map=0;
- info->state->key_file_length=share->state.state.key_file_length=
- share->base.keystart;
+ MI_KEYDEF *key=share->keyinfo;
+ uint i;
+ for (i=0 ; i < share->base.keys ; i++,key++)
+ {
+ if (!(key->flag & HA_NOSAME) && info->s->base.auto_key != i+1)
+ {
+ share->state.key_map&= ~ ((ulonglong) 1 << i);
+ info->update|= HA_STATE_CHANGED;
+ }
+ }
+
if (!share->changed)
{
share->state.changed|= STATE_CHANGED | STATE_NOT_ANALYZED;
diff --git a/myisam/myisamlog.c b/myisam/myisamlog.c
index ca2c4f27a74..8ff9bb0dc1a 100644
--- a/myisam/myisamlog.c
+++ b/myisam/myisamlog.c
@@ -331,7 +331,7 @@ static int examine_log(my_string file_name, char **table_names)
init_io_cache(&cache,file,0,READ_CACHE,start_offset,0,MYF(0));
bzero((gptr) com_count,sizeof(com_count));
- init_tree(&tree,0,sizeof(file_info),(qsort_cmp) file_info_compare,1,
+ init_tree(&tree,0,sizeof(file_info),(qsort_cmp2) file_info_compare,1,
(void(*)(void*)) file_info_free);
VOID(init_key_cache(KEY_CACHE_SIZE,(uint) (10*4*(IO_SIZE+MALLOC_OVERHEAD))));