Loading mysql-test/r/fulltext.result +5 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ select * from t1 where MATCH(a,b) AGAINST ("indexes collections"); a b Full-text indexes are called collections Only MyISAM tables support collections select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes"); a b Only MyISAM tables support collections Full-text indexes are called collections Full-text indexes are called collections select * from t1 where MATCH(a,b) AGAINST("support -collections" IN BOOLEAN MODE); a b MySQL has now support for full-text search Loading mysql-test/t/fulltext.test +4 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,10 @@ select * from t1 where MATCH(a,b) AGAINST ("collections"); select * from t1 where MATCH(a,b) AGAINST ("indexes"); select * from t1 where MATCH(a,b) AGAINST ("indexes collections"); # UNION of fulltext's select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes"); # boolean search select * from t1 where MATCH(a,b) AGAINST("support -collections" IN BOOLEAN MODE); Loading sql/sql_base.cc +4 −4 Original line number Diff line number Diff line Loading @@ -2175,8 +2175,8 @@ bool remove_table_from_cache(THD *thd, const char *db, const char *table_name, int setup_ftfuncs(THD *thd) { List_iterator<Item_func_match> li(thd->lex.select_lex.ftfunc_list), lj(thd->lex.select_lex.ftfunc_list); List_iterator<Item_func_match> li(thd->lex.select->ftfunc_list), lj(thd->lex.select->ftfunc_list); Item_func_match *ftf, *ftf2; while ((ftf=li++)) Loading @@ -2196,9 +2196,9 @@ int setup_ftfuncs(THD *thd) int init_ftfuncs(THD *thd, bool no_order) { if (thd->lex.select_lex.ftfunc_list.elements) if (thd->lex.select->ftfunc_list.elements) { List_iterator<Item_func_match> li(thd->lex.select_lex.ftfunc_list); List_iterator<Item_func_match> li(thd->lex.select->ftfunc_list); Item_func_match *ifm; DBUG_PRINT("info",("Performing FULLTEXT search")); thd->proc_info="FULLTEXT initialization"; Loading sql/sql_select.cc +3 −2 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds, List<Item> all_fields(fields); bool select_distinct; SELECT_LEX *select_lex = &(thd->lex.select_lex); SELECT_LEX *cur_sel = thd->lex.select; DBUG_ENTER("mysql_select"); /* Check that all tables, fields, conds and order are ok */ Loading Loading @@ -553,7 +554,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds, make_join_readinfo(&join, (select_options & (SELECT_DESCRIBE | SELECT_NO_JOIN_CACHE)) | (select_lex->ftfunc_list.elements ? SELECT_NO_JOIN_CACHE : 0)); (cur_sel->ftfunc_list.elements ? SELECT_NO_JOIN_CACHE : 0)); /* Need to tell Innobase that to play it safe, it should fetch all columns of the tables: this is because MySQL Loading Loading @@ -1615,7 +1616,7 @@ update_ref_and_keys(THD *thd, DYNAMIC_ARRAY *keyuse,JOIN_TAB *join_tab, add_key_part(keyuse,field); } if (thd->lex.select_lex.ftfunc_list.elements) if (thd->lex.select->ftfunc_list.elements) { add_ft_keys(keyuse,join_tab,cond,normal_tables); } Loading sql/sql_union.cc +2 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result) } union_result->save_time_stamp=!describe; for (sl=&lex->select_lex;sl;sl=sl->next) for (sl=lex->select=&lex->select_lex;sl;sl=lex->select=sl->next) { thd->offset_limit=sl->offset_limit; thd->select_limit=sl->select_limit+sl->offset_limit; Loading Loading @@ -155,6 +155,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result) delete union_result; /* Send result to 'result' */ lex->select = &lex->select_lex; res =-1; { /* Create a list of fields in the temporary table */ Loading Loading
mysql-test/r/fulltext.result +5 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ select * from t1 where MATCH(a,b) AGAINST ("indexes collections"); a b Full-text indexes are called collections Only MyISAM tables support collections select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes"); a b Only MyISAM tables support collections Full-text indexes are called collections Full-text indexes are called collections select * from t1 where MATCH(a,b) AGAINST("support -collections" IN BOOLEAN MODE); a b MySQL has now support for full-text search Loading
mysql-test/t/fulltext.test +4 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,10 @@ select * from t1 where MATCH(a,b) AGAINST ("collections"); select * from t1 where MATCH(a,b) AGAINST ("indexes"); select * from t1 where MATCH(a,b) AGAINST ("indexes collections"); # UNION of fulltext's select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes"); # boolean search select * from t1 where MATCH(a,b) AGAINST("support -collections" IN BOOLEAN MODE); Loading
sql/sql_base.cc +4 −4 Original line number Diff line number Diff line Loading @@ -2175,8 +2175,8 @@ bool remove_table_from_cache(THD *thd, const char *db, const char *table_name, int setup_ftfuncs(THD *thd) { List_iterator<Item_func_match> li(thd->lex.select_lex.ftfunc_list), lj(thd->lex.select_lex.ftfunc_list); List_iterator<Item_func_match> li(thd->lex.select->ftfunc_list), lj(thd->lex.select->ftfunc_list); Item_func_match *ftf, *ftf2; while ((ftf=li++)) Loading @@ -2196,9 +2196,9 @@ int setup_ftfuncs(THD *thd) int init_ftfuncs(THD *thd, bool no_order) { if (thd->lex.select_lex.ftfunc_list.elements) if (thd->lex.select->ftfunc_list.elements) { List_iterator<Item_func_match> li(thd->lex.select_lex.ftfunc_list); List_iterator<Item_func_match> li(thd->lex.select->ftfunc_list); Item_func_match *ifm; DBUG_PRINT("info",("Performing FULLTEXT search")); thd->proc_info="FULLTEXT initialization"; Loading
sql/sql_select.cc +3 −2 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds, List<Item> all_fields(fields); bool select_distinct; SELECT_LEX *select_lex = &(thd->lex.select_lex); SELECT_LEX *cur_sel = thd->lex.select; DBUG_ENTER("mysql_select"); /* Check that all tables, fields, conds and order are ok */ Loading Loading @@ -553,7 +554,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds, make_join_readinfo(&join, (select_options & (SELECT_DESCRIBE | SELECT_NO_JOIN_CACHE)) | (select_lex->ftfunc_list.elements ? SELECT_NO_JOIN_CACHE : 0)); (cur_sel->ftfunc_list.elements ? SELECT_NO_JOIN_CACHE : 0)); /* Need to tell Innobase that to play it safe, it should fetch all columns of the tables: this is because MySQL Loading Loading @@ -1615,7 +1616,7 @@ update_ref_and_keys(THD *thd, DYNAMIC_ARRAY *keyuse,JOIN_TAB *join_tab, add_key_part(keyuse,field); } if (thd->lex.select_lex.ftfunc_list.elements) if (thd->lex.select->ftfunc_list.elements) { add_ft_keys(keyuse,join_tab,cond,normal_tables); } Loading
sql/sql_union.cc +2 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result) } union_result->save_time_stamp=!describe; for (sl=&lex->select_lex;sl;sl=sl->next) for (sl=lex->select=&lex->select_lex;sl;sl=lex->select=sl->next) { thd->offset_limit=sl->offset_limit; thd->select_limit=sl->select_limit+sl->offset_limit; Loading Loading @@ -155,6 +155,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result) delete union_result; /* Send result to 'result' */ lex->select = &lex->select_lex; res =-1; { /* Create a list of fields in the temporary table */ Loading