summaryrefslogtreecommitdiff
path: root/sql/item.cc
diff options
context:
space:
mode:
authorSergey Glukhov <sergey.glukhov@oracle.com>2012-08-09 15:50:29 +0400
committerSergey Glukhov <sergey.glukhov@oracle.com>2012-08-09 15:50:29 +0400
commitec766b5dabdd98f3e7ed03435706ca5962834063 (patch)
tree0dc77d97fc835d2a6e62c405b6a4b0ad58a2a827 /sql/item.cc
parentd61a7909b932c8d1e8343239aa2774baa4a63269 (diff)
parentaf3fdefca52ace7f94c0b7217dbb4ea678829a3b (diff)
downloadmariadb-git-ec766b5dabdd98f3e7ed03435706ca5962834063.tar.gz
5.1 -> 5.5 merge
Diffstat (limited to 'sql/item.cc')
-rw-r--r--sql/item.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/item.cc b/sql/item.cc
index 53776782205..95563e31887 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -6429,7 +6429,12 @@ bool Item_ref::fix_fields(THD *thd, Item **reference)
if (from_field != not_found_field)
{
Item_field* fld;
- if (!(fld= new Item_field(thd, last_checked_context, from_field)))
+ Query_arena backup, *arena;
+ arena= thd->activate_stmt_arena_if_needed(&backup);
+ fld= new Item_field(thd, last_checked_context, from_field);
+ if (arena)
+ thd->restore_active_arena(arena, &backup);
+ if (!fld)
goto error;
thd->change_item_tree(reference, fld);
mark_as_dependent(thd, last_checked_context->select_lex,