mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Manual merge
This commit is contained in:
commit
c3bac658be
5 changed files with 40 additions and 6 deletions
|
@ -158,5 +158,15 @@ where
|
|||
match(c.beitrag) against ('+abc' in boolean mode)
|
||||
order by
|
||||
match(betreff) against ('+abc' in boolean mode) desc;
|
||||
ERROR HY000: The used table type doesn't support FULLTEXT indexes
|
||||
text id betreff
|
||||
(select b.id, b.betreff from t3 b) union
|
||||
(select b.id, b.betreff from t3 b)
|
||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||
id betreff
|
||||
select distinct b.id, b.betreff from t3 b
|
||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||
id betreff
|
||||
select b.id, b.betreff from t3 b group by b.id+1
|
||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||
id betreff
|
||||
drop table t1,t2,t3;
|
||||
|
|
|
@ -135,6 +135,17 @@ where
|
|||
order by
|
||||
match(betreff) against ('+abc' in boolean mode) desc;
|
||||
|
||||
# BUG#11869 part2: used table type doesn't support FULLTEXT indexes error
|
||||
(select b.id, b.betreff from t3 b) union
|
||||
(select b.id, b.betreff from t3 b)
|
||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||
|
||||
select distinct b.id, b.betreff from t3 b
|
||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||
|
||||
select b.id, b.betreff from t3 b group by b.id+1
|
||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||
|
||||
drop table t1,t2,t3;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
|
|
@ -284,6 +284,11 @@ extern CHARSET_INFO *national_charset_info, *table_alias_charset;
|
|||
#define OPTION_SETUP_TABLES_DONE (1L << 30) // intern
|
||||
/* If not set then the thread will ignore all warnings with level notes. */
|
||||
#define OPTION_SQL_NOTES (1L << 31) // THD, user
|
||||
/*
|
||||
Force the used temporary table to be a MyISAM table (because we will use
|
||||
fulltext functions when reading from it.
|
||||
*/
|
||||
#define TMP_TABLE_FORCE_MYISAM (1L << 30)
|
||||
|
||||
/*
|
||||
Maximum length of time zone name that we support
|
||||
|
|
|
@ -8359,7 +8359,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
|||
/* If result table is small; use a heap */
|
||||
if (blob_count || using_unique_constraint ||
|
||||
(select_options & (OPTION_BIG_TABLES | SELECT_SMALL_RESULT)) ==
|
||||
OPTION_BIG_TABLES)
|
||||
OPTION_BIG_TABLES ||(select_options & TMP_TABLE_FORCE_MYISAM))
|
||||
{
|
||||
table->file=get_new_handler(table,table->s->db_type= DB_TYPE_MYISAM);
|
||||
if (group &&
|
||||
|
|
|
@ -295,15 +295,23 @@ bool st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
|||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
ulong create_options= first_select_in_union()->options | thd_arg->options |
|
||||
TMP_TABLE_ALL_COLUMNS;
|
||||
/*
|
||||
Force the temporary table to be a MyISAM table if we're going to use
|
||||
fullext functions (MATCH ... AGAINST .. IN BOOLEAN MODE) when reading
|
||||
from it.
|
||||
*/
|
||||
if (global_parameters->ftfunc_list->elements)
|
||||
create_options= create_options | TMP_TABLE_FORCE_MYISAM;
|
||||
|
||||
union_result->tmp_table_param.field_count= types.elements;
|
||||
if (!(table= create_tmp_table(thd_arg,
|
||||
&union_result->tmp_table_param, types,
|
||||
(ORDER*) 0, (bool) union_distinct, 1,
|
||||
(first_select_in_union()->options |
|
||||
thd_arg->options |
|
||||
TMP_TABLE_ALL_COLUMNS),
|
||||
HA_POS_ERROR, (char *) tmp_table_alias)))
|
||||
create_options, HA_POS_ERROR,
|
||||
(char *) tmp_table_alias)))
|
||||
goto err;
|
||||
table->file->extra(HA_EXTRA_WRITE_CACHE);
|
||||
table->file->extra(HA_EXTRA_IGNORE_DUP_KEY);
|
||||
|
|
Loading…
Reference in a new issue