diff options
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r-- | sql/item_subselect.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 8b720b350a5..1780953bd7e 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -2910,7 +2910,7 @@ int subselect_single_select_engine::exec() SELECT_LEX *save_select= thd->lex->current_select; thd->lex->current_select= select_lex; - if (!join->optimized) + if (join->optimized != JOIN::OPTIMIZATION_DONE) { SELECT_LEX_UNIT *unit= select_lex->master_unit(); @@ -4647,7 +4647,9 @@ int subselect_hash_sj_engine::exec() */ thd->lex->current_select= materialize_engine->select_lex; /* The subquery should be optimized, and materialized only once. */ - DBUG_ASSERT(materialize_join->optimized && !is_materialized); + DBUG_ASSERT(materialize_join->optimized == JOIN::OPTIMIZATION_DONE && + !is_materialized); + materialize_join->exec(); if ((res= test(materialize_join->error || thd->is_fatal_error || thd->is_error()))) |