diff options
author | unknown <monty@hundin.mysql.fi> | 2001-10-02 05:53:00 +0300 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-10-02 05:53:00 +0300 |
commit | 9e72e1ef534384ab53a0c5943399c946856bef76 (patch) | |
tree | b029d516fe4b48e540f64b01492d64cf5d68ad2f /myisam/mi_range.c | |
parent | 003ed4cfaecf0c80dc2ced8593e869076cd8c34d (diff) | |
download | mariadb-git-9e72e1ef534384ab53a0c5943399c946856bef76.tar.gz |
Cleaned up SSL documentation
Fixes for embedded server
Made key_cache more configurable
Fixed that one can change key blocksize in MyISAM
A lot of optimizations to make MyISAM slightly faster
Docs/manual.texi:
Cleaned up SSL documentation
client/mysql.cc:
Fixes for embedded server
client/mysqltest.c:
Fixes for embedded server
Removed memory and file leaks
include/my_global.h:
Added C_MODE_START / C_MODE_END macros
include/my_sys.h:
Made key_cache more configurable
include/myisam.h:
Fixed that one can change MyISAM key block size
include/mysql.h:
Fixes for embedded server
libmysql/libmysql.c:
Cleanup
libmysqld/Makefile.am:
Cleanup
libmysqld/examples/test-run:
Added --debug
libmysqld/lib_sql.cc:
Cleanup
libmysqld/libmysqld.c:
Cleanup
myisam/ft_boolean_search.c:
Optimized mi_key_cmp to be faster
myisam/ft_nlq_search.c:
Optimized mi_key_cmp to be faster
myisam/ft_search.c:
Optimized mi_key_cmp to be faster
myisam/mi_changed.c:
Optimized mi_key_cmp to be faster
myisam/mi_check.c:
Optimized mi_key_cmp to be faster
myisam/mi_create.c:
Fixed that one can change blocksize by changing myisam_block_size
myisam/mi_delete.c:
Optimized mi_key_cmp to be faster
myisam/mi_delete_all.c:
Optimized mi_key_cmp to be faster
myisam/mi_dynrec.c:
Speed optimizations
myisam/mi_info.c:
Speed optimizations
myisam/mi_key.c:
Speed optimizations
myisam/mi_locking.c:
Speed optimizations
myisam/mi_open.c:
Fixed that one can change blocksize by changing myisam_block_size
myisam/mi_page.c:
Fixed that one can change blocksize by changing myisam_block_size
myisam/mi_range.c:
Speed optimizations
myisam/mi_rkey.c:
Speed optimizations
myisam/mi_rnext.c:
Speed optimizations
myisam/mi_rnext_same.c:
Speed optimizations
myisam/mi_rprev.c:
Speed optimizations
myisam/mi_rsame.c:
Speed optimizations
myisam/mi_search.c:
Speed optimizations
myisam/mi_static.c:
Fixed that one can change blocksize by changing myisam_block_size
myisam/mi_statrec.c:
Speed optimizations
myisam/mi_test2.c:
Added more test options
myisam/mi_test_all.res:
Added more test options
myisam/mi_test_all.sh:
Added more test options
myisam/mi_write.c:
Speed optimizations
myisam/myisamchk.c:
Added options to change block size and repair checksums
myisam/myisamdef.h:
Speed optimizations
mysys/Makefile.am:
Added bit handling functions
mysys/mf_keycache.c:
Made key_cache more configurable
mysys/my_init.c:
made my_init_done global
scripts/mysql_fix_privilege_tables.sh:
Fixes for SSL
scripts/mysql_install_db.sh:
Fixes for SSL
sql/derror.cc:
Don't call exit, call unireg_abort()
sql/item_cmpfunc.cc:
Speed optimizations
sql/item_cmpfunc.h:
Speed optimizations
sql/mysql_priv.h:
Fixes for embedded server
sql/mysqld.cc:
Fixes for embedded server
Diffstat (limited to 'myisam/mi_range.c')
-rw-r--r-- | myisam/mi_range.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/myisam/mi_range.c b/myisam/mi_range.c index 038f9abc3a6..6bf3356e449 100644 --- a/myisam/mi_range.c +++ b/myisam/mi_range.c @@ -45,7 +45,7 @@ ha_rows mi_records_in_range(MI_INFO *info, int inx, const byte *start_key, if ((inx = _mi_check_index(info,inx)) < 0) DBUG_RETURN(HA_POS_ERROR); - if (_mi_readinfo(info,F_RDLCK,1)) + if (fast_mi_readinfo(info)) DBUG_RETURN(HA_POS_ERROR); info->update&= (HA_STATE_CHANGED+HA_STATE_ROW_CHANGED); if (info->s->concurrent_insert) @@ -58,7 +58,7 @@ ha_rows mi_records_in_range(MI_INFO *info, int inx, const byte *start_key, info->state->records+ (ha_rows) 1); if (info->s->concurrent_insert) rw_unlock(&info->s->key_root_lock[inx]); - VOID(_mi_writeinfo(info,0)); + fast_mi_writeinfo(info); if (start_pos == HA_POS_ERROR || end_pos == HA_POS_ERROR) DBUG_RETURN(HA_POS_ERROR); DBUG_PRINT("info",("records: %ld",(ulong) (end_pos-start_pos))); @@ -72,7 +72,7 @@ ha_rows mi_records_in_range(MI_INFO *info, int inx, const byte *start_key, static ha_rows _mi_record_pos(MI_INFO *info, const byte *key, uint key_len, enum ha_rkey_function search_flag) { - uint inx=(uint) info->lastinx; + uint inx=(uint) info->lastinx, nextflag; MI_KEYDEF *keyinfo=info->s->keyinfo+inx; uchar *key_buff; double pos; @@ -86,8 +86,12 @@ static ha_rows _mi_record_pos(MI_INFO *info, const byte *key, uint key_len, key_len=_mi_pack_key(info,inx,key_buff,(uchar*) key,key_len); DBUG_EXECUTE("key",_mi_print_key(DBUG_FILE,keyinfo->seg, (uchar*) key_buff,key_len);); + nextflag=myisam_read_vec[search_flag]; + if (!(nextflag & (SEARCH_FIND | SEARCH_NO_FIND | SEARCH_LAST))) + key_len=USE_WHOLE_KEY; + pos=_mi_search_pos(info,keyinfo,key_buff,key_len, - myisam_read_vec[search_flag] | SEARCH_SAVE_BUFF, + nextflag | SEARCH_SAVE_BUFF, info->s->state.key_root[inx]); if (pos >= 0.0) { @@ -145,9 +149,9 @@ static double _mi_search_pos(register MI_INFO *info, ** Matches keynr+1 */ offset=1.0; /* Matches keynr+1 */ - if (nextflag & SEARCH_FIND && + if ((nextflag & SEARCH_FIND) && nod_flag && ((keyinfo->flag & (HA_NOSAME | HA_NULL_PART)) != HA_NOSAME || - key_len) && nod_flag) + key_len != USE_WHOLE_KEY)) { /* ** There may be identical keys in the tree. Try to match on of those. |