summaryrefslogtreecommitdiff
path: root/storage/innobase/api/api0api.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/api/api0api.cc')
-rw-r--r--storage/innobase/api/api0api.cc24
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;