diff options
author | bell@sanja.is.com.ua <> | 2003-06-26 11:31:13 +0300 |
---|---|---|
committer | bell@sanja.is.com.ua <> | 2003-06-26 11:31:13 +0300 |
commit | e8b1e216155d51b5b7ca64f2f7335e50b1c9c538 (patch) | |
tree | f3a100b7ab513c9a7167a8ced98791706e58dfca /sql/item_subselect.cc | |
parent | 2f54542f595bba7ea4c46b6bac71d1d5ea53ed3b (diff) | |
parent | 2d120d32fa66a24cfec5d083205a434ec617bb1a (diff) | |
download | mariadb-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.cc | 9 |
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); } |