diff options
author | Igor Babaev <igor@askmonty.org> | 2012-04-06 16:40:39 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2012-04-06 16:40:39 -0700 |
commit | c1feaf8d8a7ac15554e2db6c4b2222517447fe3d (patch) | |
tree | d812b6520c67b9ab1618c820c61ef06d474472ab /sql/sql_base.cc | |
parent | 545377ab50c4ae7651d9b6d6882712982f6871dd (diff) | |
parent | 4ca9b8eb3af0fbfabd493bf72a0cc0e57f51d935 (diff) | |
download | mariadb-git-c1feaf8d8a7ac15554e2db6c4b2222517447fe3d.tar.gz |
Merge.
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r-- | sql/sql_base.cc | 25 |
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); |