summaryrefslogtreecommitdiff
path: root/sql/item_subselect.cc
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2010-03-15 12:51:23 +0100
committerSergei Golubchik <sergii@pisem.net>2010-03-15 12:51:23 +0100
commitf09ca00e088b316441bb76e97ba097bc9f3da7d3 (patch)
tree1a557d74018ed9cd073b5aa960bd62421962e73d /sql/item_subselect.cc
parent2ceaffc4672c62a772890da7761d11f13d3f5ee4 (diff)
parent71b3e46b0160936596195682a731703900fb4fff (diff)
downloadmariadb-git-f09ca00e088b316441bb76e97ba097bc9f3da7d3.tar.gz
merged
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r--sql/item_subselect.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index 0eb22df5c20..b550d6e8e8e 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -39,7 +39,8 @@ inline Item * and_items(Item* cond, Item *item)
Item_subselect::Item_subselect():
Item_result_field(), value_assigned(0), thd(0), substitution(0),
engine(0), old_engine(0), used_tables_cache(0), have_to_be_excluded(0),
- const_item_cache(1), in_fix_fields(0), engine_changed(0), changed(0), is_correlated(FALSE)
+ const_item_cache(1), in_fix_fields(0), eliminated(FALSE),
+ engine_changed(0), changed(0), is_correlated(FALSE)
{
with_subselect= 1;
reset();
@@ -431,6 +432,7 @@ void Item_maxmin_subselect::print(String *str, enum_query_type query_type)
void Item_singlerow_subselect::reset()
{
+ eliminated= FALSE;
null_value= 1;
if (value)
value->null_value= 1;
@@ -1774,6 +1776,10 @@ int subselect_single_select_engine::prepare()
{
if (prepared)
return 0;
+ if (select_lex->join)
+ {
+ select_lex->cleanup();
+ }
join= new JOIN(thd, select_lex->item_list,
select_lex->options | SELECT_NO_UNLOCK, result);
if (!join || !result)