diff options
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r-- | sql/sql_insert.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 6e042d25805..475bca62f02 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -879,7 +879,8 @@ bool mysql_insert(THD *thd, TABLE_LIST *table_list, save_insert_query_plan(thd, table_list); if (thd->lex->describe) { - retval= thd->lex->explain->send_explain(thd); + bool extended= thd->lex->describe & DESCRIBE_EXTENDED; + retval= thd->lex->explain->send_explain(thd, extended); goto abort; } @@ -2269,6 +2270,7 @@ int check_that_all_fields_are_given_values(THD *thd, TABLE *entry, TABLE_LIST *t for (Field **field=entry->field ; *field ; field++) { if (!bitmap_is_set(write_set, (*field)->field_index) && + !(*field)->vcol_info && has_no_default_value(thd, *field, table_list)) err=1; } @@ -4221,6 +4223,7 @@ bool select_insert::store_values(List<Item> &values) DBUG_ENTER("select_insert::store_values"); bool error; + table->reset_default_fields(); if (fields->elements) error= fill_record_n_invoke_before_triggers(thd, table, *fields, values, true, TRG_EVENT_INSERT); |