diff options
author | unknown <serg@serg.mysql.com> | 2001-10-09 16:01:06 +0200 |
---|---|---|
committer | unknown <serg@serg.mysql.com> | 2001-10-09 16:01:06 +0200 |
commit | a0ed9744f3d12e16e0fa5e784a37f21d7a1d2faf (patch) | |
tree | bace3e172eb9211454c99657fb4493bb3159d503 /myisam/mi_write.c | |
parent | 93cc6444ccad2ace36ba354cd96ffe8ede676761 (diff) | |
parent | 85e02d693c10553fd15c1193865a7e6996545838 (diff) | |
download | mariadb-git-a0ed9744f3d12e16e0fa5e784a37f21d7a1d2faf.tar.gz |
merged
BitKeeper/etc/ignore:
auto-union
BitKeeper/deleted/.del-ft_search.c~c011cb6e8041bb59:
the file is deleted anyway
include/my_global.h:
merder
myisam/ft_boolean_search.c:
huh?
mysql-test/r/fulltext.result:
use local
mysql-test/r/fulltext_cache.result:
ur
mysql-test/r/fulltext_left_join.result:
ur
mysql-test/r/fulltext_multi.result:
ur
mysql-test/r/fulltext_order_by.result:
ur
Diffstat (limited to 'myisam/mi_write.c')
-rw-r--r-- | myisam/mi_write.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/myisam/mi_write.c b/myisam/mi_write.c index 322b0755015..5c6db053829 100644 --- a/myisam/mi_write.c +++ b/myisam/mi_write.c @@ -291,7 +291,7 @@ static int w_search(register MI_INFO *info, register MI_KEYDEF *keyinfo, my_bool insert_last) { int error,flag; - uint comp_flag,nod_flag; + uint comp_flag,nod_flag, search_key_length; uchar *temp_buff,*keypos; uchar keybuff[MI_MAX_KEY_BUFF]; my_bool was_last_key; @@ -299,10 +299,14 @@ static int w_search(register MI_INFO *info, register MI_KEYDEF *keyinfo, DBUG_ENTER("w_search"); DBUG_PRINT("enter",("page: %ld",page)); + search_key_length=USE_WHOLE_KEY; if (keyinfo->flag & HA_SORT_ALLOWS_SAME) comp_flag=SEARCH_BIGGER; /* Put after same key */ else if (keyinfo->flag & HA_NOSAME) + { comp_flag=SEARCH_FIND | SEARCH_UPDATE; /* No dupplicates */ + search_key_length= key_length; + } else comp_flag=SEARCH_SAME; /* Keys in rec-pos order */ @@ -312,8 +316,8 @@ static int w_search(register MI_INFO *info, register MI_KEYDEF *keyinfo, if (!_mi_fetch_keypage(info,keyinfo,page,temp_buff,0)) goto err; - flag=(*keyinfo->bin_search)(info,keyinfo,temp_buff,key,key_length,comp_flag, - &keypos, keybuff, &was_last_key); + flag=(*keyinfo->bin_search)(info,keyinfo,temp_buff,key,search_key_length, + comp_flag, &keypos, keybuff, &was_last_key); nod_flag=mi_test_if_nod(temp_buff); if (flag == 0) { |