diff options
author | unknown <monty@donna.mysql.com> | 2000-08-29 12:31:01 +0300 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2000-08-29 12:31:01 +0300 |
commit | 52046a7ba3c00111bf27195197b486a9ef558416 (patch) | |
tree | 8c9e3c031400ac400edcf6561fe51f4bdbd69369 /myisam | |
parent | 844c92364e04fb17371c4a71dee52f179f8ad253 (diff) | |
download | mariadb-git-52046a7ba3c00111bf27195197b486a9ef558416.tar.gz |
Bug fixes for 3.23.23
myisam/mi_debug.c:
***MISSING WEAVE***
Docs/internals.texi:
Added coding guidelines
Docs/manual.texi:
Changelog update + Win32 -> Windows
client/mysql.cc:
Changed --no-named-commands to be on by default
client/mysqlimport.c:
Bug fix
include/config-win.h:
Update of supported functions
include/global.h:
Removed compiler warning
libmysql/libmysql.c:
Fix for Ia64
myisam/ChangeLog:
Changelog
myisam/Makefile.am:
Added file mi_dbug.c
myisam/ft_stopwords.c:
Fix for Ia64
myisam/mi_delete_table.c:
Extra debugging
myisam/mi_rename.c:
Extra debugging
myisam/mi_rnext.c:
Fixed bug with MIN and concurrent insert
myisam/mi_rprev.c:
Fixed bug with MAX and concurrent insert
myisam/mi_search.c:
Fixed bug with DECIMAL/NUMERIC keys
myisam/myisamdef.h:
Extra debugging
scripts/make_binary_distribution.sh:
Added thread safe mysql library
sql/ha_heap.cc:
Fix of HEAP bug with range keys
sql/ha_heap.h:
Fix of HEAP bug with range keys
sql/handler.cc:
Optimizing
sql/handler.h:
Optimizing
sql/lock.cc:
More DEBUG + fix of RENAME bug
sql/mini_client.cc:
Fix for Ia64
sql/mysql_priv.h:
Fix for name locks
sql/mysqld.cc:
Shorter message if wrong options
sql/opt_range.cc:
Added TODO
sql/sql_base.cc:
Fix for DROP TABLE
sql/sql_parse.cc:
Fix of permission checking for CHECK TABLE
sql/sql_select.cc:
Fix of using LEFT JOIN with empty table
sql/table.h:
Fix for name locks
tests/fork_test.pl:
Fixed typo
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/ChangeLog | 4 | ||||
-rw-r--r-- | myisam/Makefile.am | 2 | ||||
-rw-r--r-- | myisam/ft_stopwords.c | 2 | ||||
-rw-r--r-- | myisam/mi_delete_table.c | 7 | ||||
-rw-r--r-- | myisam/mi_rename.c | 8 | ||||
-rw-r--r-- | myisam/mi_rnext.c | 2 | ||||
-rw-r--r-- | myisam/mi_rprev.c | 2 | ||||
-rw-r--r-- | myisam/mi_search.c | 1 | ||||
-rw-r--r-- | myisam/myisamdef.h | 2 |
9 files changed, 26 insertions, 4 deletions
diff --git a/myisam/ChangeLog b/myisam/ChangeLog index e7950684f56..d212039fedf 100644 --- a/myisam/ChangeLog +++ b/myisam/ChangeLog @@ -1,3 +1,7 @@ +2000-08-23 Michael Widenius <monty@mysql.com> + +* Fixed bug when comparing DECIMAL/NUMERIC key parts. + 2000-08-17 Michael Widenius <monty@mysql.com> * Add a new flag in share.staus so that we can quickly check if a table diff --git a/myisam/Makefile.am b/myisam/Makefile.am index 6c5767640c8..aff1b670f33 100644 --- a/myisam/Makefile.am +++ b/myisam/Makefile.am @@ -43,7 +43,7 @@ libmyisam_a_SOURCES = mi_open.c mi_extra.c mi_info.c mi_rkey.c \ mi_rsamepos.c mi_panic.c mi_close.c mi_create.c\ mi_range.c mi_dbug.c mi_checksum.c mi_log.c \ mi_changed.c mi_static.c mi_delete_all.c \ - mi_delete_table.c mi_rename.c mi_check.c \ + mi_delete_table.c mi_rename.c mi_check.c mi_debug.c \ ft_parser.c ft_search.c ft_stopwords.c ft_static.c \ ft_update.c sort.c CLEANFILES = test?.IS? isam.log mi_test_all diff --git a/myisam/ft_stopwords.c b/myisam/ft_stopwords.c index f8fddc9d4bb..4c13a845b42 100644 --- a/myisam/ft_stopwords.c +++ b/myisam/ft_stopwords.c @@ -48,7 +48,7 @@ int ft_init_stopwords(const char **sws) for(;*sws;sws++) { - if( (sw.len=strlen(sw.pos=*sws)) < MIN_WORD_LEN) continue; + if( (sw.len= (uint) strlen(sw.pos=*sws)) < MIN_WORD_LEN) continue; if(!tree_insert(stopwords3, &sw, 0)) { delete_tree(stopwords3); diff --git a/myisam/mi_delete_table.c b/myisam/mi_delete_table.c index 916f5a8fc02..360956ad110 100644 --- a/myisam/mi_delete_table.c +++ b/myisam/mi_delete_table.c @@ -30,6 +30,10 @@ int mi_delete_table(const char *name) uint raid_type=0,raid_chunks=0; #endif DBUG_ENTER("mi_delete_table"); + +#ifdef EXTRA_DEBUG + check_table_is_closed(name,"delete"); +#endif #ifdef USE_RAID { MI_INFO *info; @@ -39,7 +43,10 @@ int mi_delete_table(const char *name) raid_chunks = info->s->base.raid_chunks; mi_close(info); } +#ifdef EXTRA_DEBUG + check_table_is_closed(name,"delete"); #endif +#endif /* USE_RAID */ fn_format(from,name,"",MI_NAME_IEXT,4); if (my_delete(from, MYF(MY_WME))) diff --git a/myisam/mi_rename.c b/myisam/mi_rename.c index 6849e1c3d26..5c92db3f7ce 100644 --- a/myisam/mi_rename.c +++ b/myisam/mi_rename.c @@ -30,6 +30,11 @@ int mi_rename(const char *old_name, const char *new_name) uint raid_type=0,raid_chunks=0; #endif DBUG_ENTER("mi_rename"); + +#ifdef EXTRA_DEBUG + check_table_is_closed(old_name,"rename old_table"); + check_table_is_closed(new_name,"rename new table2"); +#endif #ifdef USE_RAID { MI_INFO *info; @@ -39,7 +44,10 @@ int mi_rename(const char *old_name, const char *new_name) raid_chunks = info->s->base.raid_chunks; mi_close(info); } +#ifdef EXTRA_DEBUG + check_table_is_closed(old_name,"rename raidcheck"); #endif +#endif /* USE_RAID */ fn_format(from,old_name,"",MI_NAME_IEXT,4); fn_format(to,new_name,"",MI_NAME_IEXT,4); diff --git a/myisam/mi_rnext.c b/myisam/mi_rnext.c index 0dc40d0257f..f7e7b61d934 100644 --- a/myisam/mi_rnext.c +++ b/myisam/mi_rnext.c @@ -57,7 +57,7 @@ int mi_rnext(MI_INFO *info, byte *buf, int inx) /* Skip rows that are inserted by other threads since we got a lock */ if ((error=_mi_search_next(info,info->s->keyinfo+inx,info->lastkey, info->lastkey_length, - flag, + SEARCH_BIGGER, info->s->state.key_root[inx]))) break; } diff --git a/myisam/mi_rprev.c b/myisam/mi_rprev.c index 6a75cc0daa6..471eecc33f5 100644 --- a/myisam/mi_rprev.c +++ b/myisam/mi_rprev.c @@ -58,7 +58,7 @@ int mi_rprev(MI_INFO *info, byte *buf, int inx) /* Skip rows that are inserted by other threads since we got a lock */ if ((error=_mi_search_next(info,share->keyinfo+inx,info->lastkey, info->lastkey_length, - flag, + SEARCH_SMALLER, share->state.key_root[inx]))) break; } diff --git a/myisam/mi_search.c b/myisam/mi_search.c index 812982082af..8fb35f3af65 100644 --- a/myisam/mi_search.c +++ b/myisam/mi_search.c @@ -716,6 +716,7 @@ int _mi_key_cmp(register MI_KEYSEG *keyseg, register uchar *a, { alength= *a++; blength= *b++; end=a+alength; + next_key_length=key_length-blength-1; } else { diff --git a/myisam/myisamdef.h b/myisam/myisamdef.h index d0774feaa9d..cd1eaa76ce1 100644 --- a/myisam/myisamdef.h +++ b/myisam/myisamdef.h @@ -622,6 +622,8 @@ void mi_dectivate_non_unique_index(MI_INFO *info, ha_rows rows); int _mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len, enum ha_rkey_function search_flag, bool raw_key); +my_bool check_table_is_closed(const char *name, const char *where); + /* Functions needed by mi_check */ #ifdef __cplusplus extern "C" { |