summaryrefslogtreecommitdiff
path: root/sql/sql_base.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r--sql/sql_base.cc10
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))