diff options
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r-- | sql/sql_base.cc | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 37336a83bfb..7fbbecfc897 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -5838,9 +5838,7 @@ find_field_in_view(THD *thd, TABLE_LIST *table_list, if (!my_strcasecmp(system_charset_info, field_it.name()->str, name)) { // in PS use own arena or data will be freed after prepare - if (register_tree_change && - thd->stmt_arena->is_stmt_prepare_or_first_stmt_execute()) - arena= thd->activate_stmt_arena_if_needed(&backup); + arena= thd->activate_stmt_arena_if_needed(&backup); /* create_item() may, or may not create a new Item, depending on the column reference. See create_view_field() for details. @@ -5861,10 +5859,10 @@ find_field_in_view(THD *thd, TABLE_LIST *table_list, if (*ref && !(*ref)->is_autogenerated_name) item->set_name(thd, (*ref)->name.str, (*ref)->name.length, system_charset_info); - if (register_tree_change) - thd->change_item_tree(ref, item); - else - *ref= item; + /* + Do permanent name resolution. + */ + *ref= item; DBUG_RETURN((Field*) view_ref_found); } } |