mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
indexless boolean fulltext search was depending on default_charset_info - Bug#8159
ftbw->off wasn't cleared on reinit - Bug#8234
This commit is contained in:
@@ -88,8 +88,12 @@ class ha_myisam: public handler
|
||||
ft_handler->please->reinit_search(ft_handler);
|
||||
return 0;
|
||||
}
|
||||
FT_INFO *ft_init_ext(uint flags, uint inx,const byte *key, uint keylen)
|
||||
{ return ft_init_search(flags,file,inx,(byte*) key,keylen, table->record[0]); }
|
||||
FT_INFO *ft_init_ext(uint flags, uint inx,String *key)
|
||||
{
|
||||
return ft_init_search(flags,file,inx,
|
||||
(byte *)key->ptr(), key->length(), key->charset(),
|
||||
table->record[0]);
|
||||
}
|
||||
int ft_read(byte *buf);
|
||||
int rnd_init(bool scan);
|
||||
int rnd_next(byte *buf);
|
||||
|
@@ -373,8 +373,7 @@ public:
|
||||
int compare_key(key_range *range);
|
||||
virtual int ft_init() { return HA_ERR_WRONG_COMMAND; }
|
||||
void ft_end() { ft_handler=NULL; }
|
||||
virtual FT_INFO *ft_init_ext(uint flags,uint inx,const byte *key,
|
||||
uint keylen)
|
||||
virtual FT_INFO *ft_init_ext(uint flags, uint inx,String *key)
|
||||
{ return NULL; }
|
||||
virtual int ft_read(byte *buf) { return HA_ERR_WRONG_COMMAND; }
|
||||
virtual int rnd_next(byte *buf)=0;
|
||||
|
@@ -3047,9 +3047,7 @@ void Item_func_match::init_search(bool no_order)
|
||||
|
||||
if (join_key && !no_order)
|
||||
flags|=FT_SORTED;
|
||||
ft_handler=table->file->ft_init_ext(flags, key,
|
||||
(byte*) ft_tmp->ptr(),
|
||||
ft_tmp->length());
|
||||
ft_handler=table->file->ft_init_ext(flags, key, ft_tmp);
|
||||
|
||||
if (join_key)
|
||||
table->file->ft_handler=ft_handler;
|
||||
@@ -3091,12 +3089,12 @@ bool Item_func_match::fix_fields(THD *thd, TABLE_LIST *tlist, Item **ref)
|
||||
}
|
||||
/*
|
||||
Check that all columns come from the same table.
|
||||
We've already checked that columns in MATCH are fields so
|
||||
We've already checked that columns in MATCH are fields so
|
||||
PARAM_TABLE_BIT can only appear from AGAINST argument.
|
||||
*/
|
||||
if ((used_tables_cache & ~PARAM_TABLE_BIT) != item->used_tables())
|
||||
key=NO_SUCH_KEY;
|
||||
|
||||
|
||||
if (key == NO_SUCH_KEY && !(flags & FT_BOOL))
|
||||
{
|
||||
my_error(ER_WRONG_ARGUMENTS,MYF(0),"MATCH");
|
||||
|
Reference in New Issue
Block a user