This commit is contained in:
parent
b3e9211e48
commit
83d20ca3fb
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
|
/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -199,7 +199,8 @@ static int ftb_query_add_word(MYSQL_FTPARSER_PARAM *param,
|
|||||||
ftbw= (FTB_WORD *)alloc_root(&ftb_param->ftb->mem_root,
|
ftbw= (FTB_WORD *)alloc_root(&ftb_param->ftb->mem_root,
|
||||||
sizeof(FTB_WORD) +
|
sizeof(FTB_WORD) +
|
||||||
(info->trunc ? MI_MAX_KEY_BUFF :
|
(info->trunc ? MI_MAX_KEY_BUFF :
|
||||||
word_len * ftb_param->ftb->charset->mbmaxlen +
|
(word_len + 1) *
|
||||||
|
ftb_param->ftb->charset->mbmaxlen +
|
||||||
HA_FT_WLEN +
|
HA_FT_WLEN +
|
||||||
ftb_param->ftb->info->s->rec_reflength));
|
ftb_param->ftb->info->s->rec_reflength));
|
||||||
ftbw->len= word_len + 1;
|
ftbw->len= word_len + 1;
|
||||||
@ -362,6 +363,8 @@ static int _ft2_search_no_lock(FTB *ftb, FTB_WORD *ftbw, my_bool init_search)
|
|||||||
MI_INFO *info=ftb->info;
|
MI_INFO *info=ftb->info;
|
||||||
uint UNINIT_VAR(off), extra= HA_FT_WLEN + info->s->rec_reflength;
|
uint UNINIT_VAR(off), extra= HA_FT_WLEN + info->s->rec_reflength;
|
||||||
uchar *lastkey_buf=ftbw->word+ftbw->off;
|
uchar *lastkey_buf=ftbw->word+ftbw->off;
|
||||||
|
uint max_word_length= (ftbw->flags & FTB_FLAG_TRUNC) ? MI_MAX_KEY_BUFF :
|
||||||
|
((ftbw->len) * ftb->charset->mbmaxlen) + extra;
|
||||||
|
|
||||||
if (ftbw->flags & FTB_FLAG_TRUNC)
|
if (ftbw->flags & FTB_FLAG_TRUNC)
|
||||||
lastkey_buf+=ftbw->len;
|
lastkey_buf+=ftbw->len;
|
||||||
@ -421,7 +424,7 @@ static int _ft2_search_no_lock(FTB *ftb, FTB_WORD *ftbw, my_bool init_search)
|
|||||||
(my_bool) (ftbw->flags & FTB_FLAG_TRUNC),0);
|
(my_bool) (ftbw->flags & FTB_FLAG_TRUNC),0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r) /* not found */
|
if (r || info->lastkey_length > max_word_length) /* not found */
|
||||||
{
|
{
|
||||||
if (!ftbw->off || !(ftbw->flags & FTB_FLAG_TRUNC))
|
if (!ftbw->off || !(ftbw->flags & FTB_FLAG_TRUNC))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user