summaryrefslogtreecommitdiff
path: root/sql/sql_base.cc
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2012-04-06 16:40:39 -0700
committerIgor Babaev <igor@askmonty.org>2012-04-06 16:40:39 -0700
commitc1feaf8d8a7ac15554e2db6c4b2222517447fe3d (patch)
treed812b6520c67b9ab1618c820c61ef06d474472ab /sql/sql_base.cc
parent545377ab50c4ae7651d9b6d6882712982f6871dd (diff)
parent4ca9b8eb3af0fbfabd493bf72a0cc0e57f51d935 (diff)
downloadmariadb-git-c1feaf8d8a7ac15554e2db6c4b2222517447fe3d.tar.gz
Merge.
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r--sql/sql_base.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 2e085ece93d..3a5b6ac635f 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -5988,15 +5988,22 @@ find_field_in_view(THD *thd, TABLE_LIST *table_list,
*/
if (*ref && !(*ref)->is_autogenerated_name)
{
- if (register_tree_change &&
- thd->stmt_arena->is_stmt_prepare_or_first_stmt_execute())
- arena= thd->activate_stmt_arena_if_needed(&backup);
- item->set_name((*ref)->name, (*ref)->name_length,
- system_charset_info);
- item->real_item()->set_name((*ref)->name, (*ref)->name_length,
- system_charset_info);
- if (arena)
- thd->restore_active_arena(arena, &backup);
+ if (register_tree_change)
+ {
+ item->set_name_for_rollback(thd, (*ref)->name,
+ (*ref)->name_length,
+ system_charset_info);
+ item->real_item()->set_name_for_rollback(thd, (*ref)->name,
+ (*ref)->name_length,
+ system_charset_info);
+ }
+ else
+ {
+ item->set_name((*ref)->name, (*ref)->name_length,
+ system_charset_info);
+ item->real_item()->set_name((*ref)->name, (*ref)->name_length,
+ system_charset_info);
+ }
}
if (register_tree_change)
thd->change_item_tree(ref, item);