summaryrefslogtreecommitdiff
path: root/sql/item_subselect.cc
diff options
context:
space:
mode:
authorbell@sanja.is.com.ua <>2003-06-26 11:31:13 +0300
committerbell@sanja.is.com.ua <>2003-06-26 11:31:13 +0300
commite8b1e216155d51b5b7ca64f2f7335e50b1c9c538 (patch)
treef3a100b7ab513c9a7167a8ced98791706e58dfca /sql/item_subselect.cc
parent2f54542f595bba7ea4c46b6bac71d1d5ea53ed3b (diff)
parent2d120d32fa66a24cfec5d083205a434ec617bb1a (diff)
downloadmariadb-git-e8b1e216155d51b5b7ca64f2f7335e50b1c9c538.tar.gz
Merge sanja.is.com.ua:/home/bell/mysql/bk/work-cond_count-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-top2-4.1
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r--sql/item_subselect.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index 9c26a6e09e5..7bbd5bb7f83 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -893,6 +893,8 @@ int subselect_single_select_engine::exec()
{
DBUG_ENTER("subselect_single_select_engine::exec");
char const *save_where= join->thd->where;
+ SELECT_LEX_NODE *save_select= join->thd->lex.current_select;
+ join->thd->lex.current_select= select_lex;
if (!optimized)
{
optimized=1;
@@ -900,6 +902,7 @@ int subselect_single_select_engine::exec()
{
join->thd->where= save_where;
executed= 1;
+ join->thd->lex.current_select= save_select;
DBUG_RETURN(join->error?join->error:1);
}
}
@@ -908,6 +911,7 @@ int subselect_single_select_engine::exec()
if (join->reinit())
{
join->thd->where= save_where;
+ join->thd->lex.current_select= save_select;
DBUG_RETURN(1);
}
item->reset();
@@ -915,15 +919,14 @@ int subselect_single_select_engine::exec()
}
if (!executed)
{
- SELECT_LEX_NODE *save_select= join->thd->lex.current_select;
- join->thd->lex.current_select= select_lex;
join->exec();
- join->thd->lex.current_select= save_select;
executed= 1;
join->thd->where= save_where;
+ join->thd->lex.current_select= save_select;
DBUG_RETURN(join->error||thd->is_fatal_error);
}
join->thd->where= save_where;
+ join->thd->lex.current_select= save_select;
DBUG_RETURN(0);
}