diff options
author | unknown <serg@serg.mylan> | 2004-04-27 21:17:10 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-04-27 21:17:10 +0200 |
commit | e35880e0b86ea38412b1c5e94a99aa995f071564 (patch) | |
tree | 8cf231fea089cf1204f85536f9854e2abaf2bb6f /myisam/ft_nlq_search.c | |
parent | 39ec9e1e23409b9ddb0c9b7c5baff3d4877c11b6 (diff) | |
download | mariadb-git-e35880e0b86ea38412b1c5e94a99aa995f071564.tar.gz |
after-merge fix: make concurrent-insert-skip code ft2-aware
mysql-test/t/func_group.test:
no innodb is not an error
Diffstat (limited to 'myisam/ft_nlq_search.c')
-rw-r--r-- | myisam/ft_nlq_search.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/myisam/ft_nlq_search.c b/myisam/ft_nlq_search.c index f8ca7e96564..9b42d51ab55 100644 --- a/myisam/ft_nlq_search.c +++ b/myisam/ft_nlq_search.c @@ -90,6 +90,7 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio) /* Skip rows inserted by current inserted */ for (r=_mi_search(info, keyinfo, keybuff, keylen, SEARCH_FIND, key_root) ; + (subkeys=ft_sintXkorr(info->lastkey+info->lastkey_length-extra)) > 0 && !r && info->lastpos >= info->state->data_file_length ; r= _mi_search_next(info, keyinfo, info->lastkey, info->lastkey_length, SEARCH_BIGGER, key_root)) @@ -105,7 +106,6 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio) info->lastkey_length-extra-1, keybuff+1,keylen-1,0,0)) break; - subkeys=ft_sintXkorr(info->lastkey+info->lastkey_length-extra); if (subkeys<0) { if (doc_cnt) @@ -119,7 +119,7 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio) key_root=info->lastpos; keylen=0; r=_mi_search_first(info, keyinfo, key_root); - continue; + goto do_skip; } #if HA_FT_WTYPE == HA_KEYTYPE_FLOAT tmp_weight=*(float*)&subkeys; @@ -157,8 +157,9 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio) else r=_mi_search(info, keyinfo, info->lastkey, info->lastkey_length, SEARCH_BIGGER, key_root); - - while (!r && info->lastpos >= info->state->data_file_length) +do_skip: + while ((subkeys=ft_sintXkorr(info->lastkey+info->lastkey_length-extra)) > 0 && + !r && info->lastpos >= info->state->data_file_length) r= _mi_search_next(info, keyinfo, info->lastkey, info->lastkey_length, SEARCH_BIGGER, key_root); |