Commit 8d8a133d authored by serg@serg.mysql.com's avatar serg@serg.mysql.com

fts+const_tables bug fixed

parent adf4f462
......@@ -2056,6 +2056,7 @@ bool Item_func_match::fix_fields(THD *thd,struct st_table_list *tlist)
}
const_item_cache=0;
table=((Item_field *)fields.head())->field->table;
table->fulltext_searched=1;
return 0;
}
......
......@@ -880,6 +880,7 @@ class Item_func_match :public Item_real_func
ft_close_search(ft_handler);
if(join_key)
table->file->ft_handler=0;
table->fulltext_searched=0;
}
}
}
......
......@@ -885,7 +885,8 @@ make_join_statistics(JOIN *join,TABLE_LIST *tables,COND *conds,
s->dependent=(table_map) 0;
s->key_dependent=(table_map) 0;
if ((table->system || table->file->records <= 1) && ! s->dependent &&
!(table->file->option_flag() & HA_NOT_EXACT_COUNT))
!(table->file->option_flag() & HA_NOT_EXACT_COUNT) &&
!table->fulltext_searched)
{
s->type=JT_SYSTEM;
const_table_map|=table->map;
......@@ -983,7 +984,8 @@ make_join_statistics(JOIN *join,TABLE_LIST *tables,COND *conds,
} while (keyuse->table == table && keyuse->key == key);
if (eq_part == PREV_BITS(uint,table->key_info[key].key_parts) &&
(table->key_info[key].flags & HA_NOSAME))
(table->key_info[key].flags & HA_NOSAME) &&
!table->fulltext_searched)
{
if (const_ref == eq_part)
{ // Found everything for ref.
......
......@@ -95,6 +95,7 @@ struct st_table {
my_bool db_low_byte_first; /* Portable row format */
my_bool locked_by_flush;
my_bool locked_by_name;
my_bool fulltext_searched;
my_bool crashed;
my_bool is_view;
Field *next_number_field, /* Set if next_number is activated */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment