diff options
Diffstat (limited to 'storage/innobase/api/api0api.cc')
-rw-r--r-- | storage/innobase/api/api0api.cc | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/storage/innobase/api/api0api.cc b/storage/innobase/api/api0api.cc index 1f04b1b1234..1b99dcf1564 100644 --- a/storage/innobase/api/api0api.cc +++ b/storage/innobase/api/api0api.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2008, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2008, 2016, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1006,6 +1006,16 @@ ib_cursor_open_table( return(err); } +/** Check the table whether it contains virtual columns. +@param[in] crsr InnoDB Cursor +@return true if table contains virtual column else false. */ +ib_bool_t +ib_is_virtual_table( + ib_crsr_t crsr) +{ + return(crsr->prebuilt->table->n_v_cols > 0); +} + /********************************************************************//** Free a context struct for a table handle. */ static @@ -1262,12 +1272,14 @@ ib_insert_query_graph_create( row = dtuple_create(heap, dict_table_get_n_cols(table)); dict_table_copy_types(row, table); + ut_ad(!dict_table_have_virtual_index(table)); + ins_node_set_new_row(node->ins, row); grph->ins = static_cast<que_fork_t*>( que_node_get_parent( pars_complete_graph_for_exec(node->ins, trx, - heap))); + heap, NULL))); grph->ins->state = QUE_FORK_ACTIVE; } @@ -1376,9 +1388,12 @@ ib_update_vector_create( row_create_update_node_for_mysql(table, heap)); } + ut_ad(!dict_table_have_virtual_index(table)); + grph->upd = static_cast<que_fork_t*>( que_node_get_parent( - pars_complete_graph_for_exec(node->upd, trx, heap))); + pars_complete_graph_for_exec(node->upd, trx, + heap, NULL))); grph->upd->state = QUE_FORK_ACTIVE; @@ -3009,12 +3024,13 @@ ib_table_lock( } ut_a(ib_lck_mode <= static_cast<ib_lck_mode_t>(LOCK_NUM)); + ut_ad(!dict_table_have_virtual_index(table)); heap = mem_heap_create(128); q_proc.node.sel = sel_node_create(heap); - thr = pars_complete_graph_for_exec(q_proc.node.sel, trx, heap); + thr = pars_complete_graph_for_exec(q_proc.node.sel, trx, heap, NULL); q_proc.grph.sel = static_cast<que_fork_t*>(que_node_get_parent(thr)); q_proc.grph.sel->state = QUE_FORK_ACTIVE; |