diff options
author | Sergei Golubchik <serg@mariadb.org> | 2016-07-25 17:57:31 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2016-08-27 16:59:13 +0200 |
commit | 7450cb7f69db801c48f806748e666c393b8d6b81 (patch) | |
tree | ae408cffb6225d4bf7c8ceb764c5a86d7ff71034 /sql/item.cc | |
parent | cd51c7fb60e39ae113e6bcf0d029564dd1b391e3 (diff) | |
download | mariadb-git-7450cb7f69db801c48f806748e666c393b8d6b81.tar.gz |
re-fix vcols on demand, not always for every SELECT
Diffstat (limited to 'sql/item.cc')
-rw-r--r-- | sql/item.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/item.cc b/sql/item.cc index b955457cf32..5da95b05b2f 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -5219,6 +5219,8 @@ bool Item_field::fix_fields(THD *thd, Item **reference) } #endif fixed= 1; + if (field->vcol_info) + fix_session_vcol_expr_for_read(thd, field, field->vcol_info); if (thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY && !outer_fixed && !thd->lex->in_sum_func && thd->lex->current_select->cur_pos_in_select_list != UNDEF_POS && @@ -8231,6 +8233,7 @@ bool Item_default_value::fix_fields(THD *thd, Item **items) set_field(def_field); if (field->default_value) { + fix_session_vcol_expr_for_read(thd, field, field->default_value); if (thd->mark_used_columns != MARK_COLUMNS_NONE) field->default_value->expr_item->walk(&Item::register_field_in_read_map, 1, 0); IF_DBUG(def_field->is_stat_field=1,); // a hack to fool ASSERT_COLUMN_MARKED_FOR_WRITE_OR_COMPUTED |