summaryrefslogtreecommitdiff
path: root/sql/item_subselect.cc
diff options
context:
space:
mode:
authorunknown <evgen@moonbone.local>2008-03-28 14:31:52 +0300
committerunknown <evgen@moonbone.local>2008-03-28 14:31:52 +0300
commit7c156537cc51c42ae58c61f6bb70a307b8216334 (patch)
tree4b7e91d38fed2b7d68d6dc8135ad21790e4909ec /sql/item_subselect.cc
parentab82016ae85b7126319e3749b5c8232e5b8fbf79 (diff)
parent9d661efd7f85b4208b9220434a0d5b5f21ac5070 (diff)
downloadmariadb-git-7c156537cc51c42ae58c61f6bb70a307b8216334.tar.gz
Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-bugteam
into moonbone.local:/work/27219-5.0-opt-mysql sql/item.cc: Auto merged sql/item_subselect.cc: Auto merged sql/item_sum.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sql_select.cc: Auto merged
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r--sql/item_subselect.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index a03a7d739b2..401751660fd 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -1442,6 +1442,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);
@@ -1476,6 +1489,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