mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 11:57:38 +02:00
after-merge fix: make concurrent-insert-skip code ft2-aware
mysql-test/t/func_group.test: no innodb is not an error
This commit is contained in:
parent
39ec9e1e23
commit
e35880e0b8
3 changed files with 20 additions and 7 deletions
|
|
@ -205,6 +205,7 @@ static int _ft2_search(FTB *ftb, FTB_WORD *ftbw, my_bool init_search)
|
|||
int r;
|
||||
uint off;
|
||||
int subkeys;
|
||||
my_bool can_go_down;
|
||||
MI_INFO *info=ftb->info;
|
||||
|
||||
if (init_search)
|
||||
|
|
@ -222,11 +223,22 @@ static int _ft2_search(FTB *ftb, FTB_WORD *ftbw, my_bool init_search)
|
|||
USE_WHOLE_KEY, SEARCH_BIGGER, ftbw->key_root);
|
||||
}
|
||||
|
||||
can_go_down=(!ftbw->off && (init_search || (ftbw->flags & FTB_FLAG_TRUNC)));
|
||||
/* Skip rows inserted by concurrent insert */
|
||||
while (!r && info->lastpos >= info->state->data_file_length)
|
||||
while (!r)
|
||||
{
|
||||
if (can_go_down)
|
||||
{
|
||||
/* going down ? */
|
||||
off=info->lastkey_length-HA_FT_WLEN-info->s->base.rec_reflength;
|
||||
subkeys=ft_sintXkorr(info->lastkey+off);
|
||||
}
|
||||
if (subkeys<0 || info->lastpos < info->state->data_file_length)
|
||||
break;
|
||||
r= _mi_search_next(info, ftbw->keyinfo, info->lastkey,
|
||||
info->lastkey_length,
|
||||
SEARCH_BIGGER, ftbw->key_root);
|
||||
}
|
||||
|
||||
if (!r && !ftbw->off)
|
||||
{
|
||||
|
|
@ -270,8 +282,6 @@ static int _ft2_search(FTB *ftb, FTB_WORD *ftbw, my_bool init_search)
|
|||
if (!ftbw->off && (init_search || (ftbw->flags & FTB_FLAG_TRUNC)))
|
||||
{
|
||||
/* going down ? */
|
||||
get_key_full_length_rdonly(off, info->lastkey);
|
||||
subkeys=ft_sintXkorr(info->lastkey+off);
|
||||
if (subkeys<0)
|
||||
{
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue