summaryrefslogtreecommitdiff
path: root/myisam/mi_write.c
diff options
context:
space:
mode:
authorunknown <serg@serg.mysql.com>2001-10-09 16:01:06 +0200
committerunknown <serg@serg.mysql.com>2001-10-09 16:01:06 +0200
commita0ed9744f3d12e16e0fa5e784a37f21d7a1d2faf (patch)
treebace3e172eb9211454c99657fb4493bb3159d503 /myisam/mi_write.c
parent93cc6444ccad2ace36ba354cd96ffe8ede676761 (diff)
parent85e02d693c10553fd15c1193865a7e6996545838 (diff)
downloadmariadb-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.c10
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)
{