diff options
author | evgen@moonbone.local <> | 2008-03-28 18:09:14 +0300 |
---|---|---|
committer | evgen@moonbone.local <> | 2008-03-28 18:09:14 +0300 |
commit | 8fe48b687586c74e0af52e64c7b63746198535d5 (patch) | |
tree | 31732e6de3b8d61202db7baddd0a4627816a31ae /sql/item_subselect.cc | |
parent | ab82eca67c58b1ce973fba7afab06c3ba3b53fdd (diff) | |
parent | 0bce8e6f9b5522bb67f7a63513db842d7cd09d8a (diff) | |
download | mariadb-git-8fe48b687586c74e0af52e64c7b63746198535d5.tar.gz |
Merge moonbone.local:/work/27219-5.0-opt-mysql
into moonbone.local:/work/27219-bug-5.1
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r-- | sql/item_subselect.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 0ccadaf28da..ea16f3c3518 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -1498,6 +1498,19 @@ Item_in_subselect::select_in_like_transformer(JOIN *join, Comp_creator *func) DBUG_ENTER("Item_in_subselect::select_in_like_transformer"); + { + /* + IN/SOME/ALL/ANY subqueries aren't support LIMIT clause. Without it + ORDER BY clause becomes meaningless thus we drop it here. + */ + SELECT_LEX *sl= current->master_unit()->first_select(); + for (; sl; sl= sl->next_select()) + { + if (sl->join) + sl->join->order= 0; + } + } + if (changed) { DBUG_RETURN(RES_OK); @@ -1532,6 +1545,7 @@ Item_in_subselect::select_in_like_transformer(JOIN *join, Comp_creator *func) transformed= 1; arena= thd->activate_stmt_arena_if_needed(&backup); + /* Both transformers call fix_fields() only for Items created inside them, and all that items do not make permanent changes in current item arena |