diff --git a/myisam/ft_boolean_search.c b/myisam/ft_boolean_search.c index 9b51601be40d22461dc9b1151a2104682bc77ac6..590062598ed68f4b15a4b8ec7b5da1e5093ac305 100644 --- a/myisam/ft_boolean_search.c +++ b/myisam/ft_boolean_search.c @@ -263,7 +263,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query, _ftb_parse_query(ftb, &query, query+query_len, ftbe, 0); ftb->list=(FTB_WORD **)alloc_root(&ftb->mem_root, sizeof(FTB_WORD *)*ftb->queue.elements); - memcpy(ftb->list, ftb->queue.root, sizeof(FTB_WORD *)*ftb->queue.elements); + memcpy(ftb->list, ftb->queue.root+1, sizeof(FTB_WORD *)*ftb->queue.elements); qsort2(ftb->list, ftb->queue.elements, sizeof(FTB_WORD *), (qsort2_cmp)FTB_WORD_cmp_list, 0); if (ftb->queue.elements<2) ftb->with_scan=0; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 82fe4d0c72307c72f2901d90dad74103c1f2674a..32f2e2741329c9e9623688daa47d08cd8766af44 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1114,7 +1114,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.