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
commit24668854994a5ee6ff7dd6477b0dbd70b59a556d (patch)
treebace3e172eb9211454c99657fb4493bb3159d503 /myisam/mi_write.c
parent41ab86b46186f15fc38fafe69ccd44860807b667 (diff)
parent94ca4023265a118f3444efac0ec05857d0fe8ef5 (diff)
downloadmariadb-git-24668854994a5ee6ff7dd6477b0dbd70b59a556d.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)
{