summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r--sql/sql_insert.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index 707b8a0d3bf..17d69cd0e71 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -276,7 +276,7 @@ static int check_insert_fields(THD *thd, TABLE_LIST *table_list,
unfix_fields(fields);
res= setup_fields(thd, Ref_ptr_array(),
- fields, MARK_COLUMNS_WRITE, 0, NULL, 0);
+ fields, MARK_COLUMNS_WRITE, 0, NULL, 0, 0);
/* Restore the current context. */
ctx_state.restore_state(context, table_list);
@@ -388,7 +388,7 @@ static int check_update_fields(THD *thd, TABLE_LIST *insert_table_list,
/* Check the fields we are going to modify */
if (setup_fields(thd, Ref_ptr_array(),
- update_fields, MARK_COLUMNS_WRITE, 0, NULL, 0))
+ update_fields, MARK_COLUMNS_WRITE, 0, NULL, 0, 0))
return -1;
if (insert_table_list->is_view() &&
@@ -839,7 +839,7 @@ bool mysql_insert(THD *thd, TABLE_LIST *table_list,
goto abort;
}
if (setup_fields(thd, Ref_ptr_array(),
- *values, MARK_COLUMNS_READ, 0, NULL, 0))
+ *values, MARK_COLUMNS_READ, 0, NULL, 0, 0))
goto abort;
switch_to_nullable_trigger_fields(*values, table);
}
@@ -1671,13 +1671,14 @@ int mysql_prepare_insert(THD *thd, TABLE_LIST *table_list,
res= setup_returning_fields(thd, table_list) ||
setup_fields(thd, Ref_ptr_array(),
- *values, MARK_COLUMNS_READ, 0, NULL, 0) ||
+ *values, MARK_COLUMNS_READ, 0, NULL, 0, 1) ||
check_insert_fields(thd, context->table_list, fields, *values,
!insert_into_view, 0, &map);
+
if (!res)
res= setup_fields(thd, Ref_ptr_array(),
- update_values, MARK_COLUMNS_READ, 0, NULL, 0);
+ update_values, MARK_COLUMNS_READ, 0, NULL, 0, 0);
if (!res && duplic == DUP_UPDATE)
{
@@ -3866,7 +3867,7 @@ select_insert::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
res= (setup_returning_fields(thd, table_list) ||
setup_fields(thd, Ref_ptr_array(), values, MARK_COLUMNS_READ, 0, 0,
- 0) ||
+ 0, 0) ||
check_insert_fields(thd, table_list, *fields, values,
!insert_into_view, 1, &map));
@@ -3923,7 +3924,7 @@ select_insert::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
}
res= res || setup_fields(thd, Ref_ptr_array(), *info.update_values,
- MARK_COLUMNS_READ, 0, NULL, 0);
+ MARK_COLUMNS_READ, 0, NULL, 0, 0);
if (!res)
{
/*