diff options
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r-- | sql/sql_base.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 14740274b87..f7f7d50bc85 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -8071,9 +8071,13 @@ fill_record(THD *thd, TABLE *table_arg, List<Item> &fields, List<Item> &values, rfield->set_explicit_default(value); } - if (!update && table_arg->default_field && - table_arg->update_default_fields(ignore_errors)) - goto err; + if (update) + table_arg->evaluate_update_default_function(); + else + if (table_arg->default_field && + table_arg->update_default_fields(ignore_errors)) + goto err; + /* Update virtual fields */ if (table_arg->vfield && table_arg->update_virtual_fields(table_arg->file, VCOL_UPDATE_FOR_WRITE)) |