summaryrefslogtreecommitdiff
path: root/sql/sp_rcontext.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-01-24 14:00:33 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2018-01-24 14:00:33 +0200
commit9875d5c3e13fab929833a401f29eb355ab602da2 (patch)
treeed856a9237985c3b63c46a96e01d1780bf3e938b /sql/sp_rcontext.cc
parent6fe953cb71241fd5ce583713deb854b4f6170f8c (diff)
parent62740e02c8805da3bc0e04cef6933635d339dc91 (diff)
downloadmariadb-git-9875d5c3e13fab929833a401f29eb355ab602da2.tar.gz
Merge bb-10.2-ext into 10.3
Diffstat (limited to 'sql/sp_rcontext.cc')
-rw-r--r--sql/sp_rcontext.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/sp_rcontext.cc b/sql/sp_rcontext.cc
index 740941937e8..3a2348b8cc5 100644
--- a/sql/sp_rcontext.cc
+++ b/sql/sp_rcontext.cc
@@ -67,6 +67,7 @@ sp_rcontext *sp_rcontext::create(THD *thd,
Field *return_value_fld,
Row_definition_list &field_def_lst)
{
+ SELECT_LEX *save_current_select;
sp_rcontext *ctx= new (thd->mem_root) sp_rcontext(owner,
root_parsing_ctx,
return_value_fld,
@@ -74,14 +75,19 @@ sp_rcontext *sp_rcontext::create(THD *thd,
if (!ctx)
return NULL;
+ /* Reset current_select as it's checked in Item_ident::Item_ident */
+ save_current_select= thd->lex->current_select;
+ thd->lex->current_select= 0;
+
if (ctx->alloc_arrays(thd) ||
ctx->init_var_table(thd, field_def_lst) ||
ctx->init_var_items(thd, field_def_lst))
{
delete ctx;
- return NULL;
+ ctx= 0;
}
+ thd->lex->current_select= save_current_select;
return ctx;
}