diff --git a/mysql-test/suite/versioning/r/view.result b/mysql-test/suite/versioning/r/view.result index 258a2dcb92c..17ac0bc04e8 100644 --- a/mysql-test/suite/versioning/r/view.result +++ b/mysql-test/suite/versioning/r/view.result @@ -39,8 +39,6 @@ x drop prepare stmt; select * from vt1; x -2 -1 prepare stmt from 'select * from vt1'; execute stmt; x @@ -50,7 +48,6 @@ x 1 select * from vt1 for system_time as of timestamp @t1; x -2 1 prepare stmt from 'select * from vt1 for system_time as of timestamp @t1'; execute stmt; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 47de223d590..45dc3ea4583 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -703,11 +703,6 @@ int vers_setup_select(THD *thd, TABLE_LIST *tables, COND **where_expr, DBUG_RETURN(0); } - while (tables && tables->is_view() && !thd->stmt_arena->is_stmt_prepare()) - { - tables= tables->view->select_lex.table_list.first; - } - for (table= tables; table; table= table->next_local) { if (table->table && table->table->versioned()) @@ -16879,9 +16874,9 @@ create_tmp_table(THD *thd, TMP_TABLE_PARAM *param, List &fields, continue; // Some kind of const item } - if (type == Item::FIELD_ITEM) + if (type == Item::FIELD_ITEM || type == Item::REF_ITEM) { - Item_field *item_field= (Item_field *)item; + Item_field *item_field= (Item_field *)item->real_item(); Field *field= item_field->field; TABLE_SHARE *s= field->table->s; if (s->versioned)