mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 10.2 into 10.3
This commit is contained in:
28
sql/table.cc
28
sql/table.cc
@@ -7930,7 +7930,7 @@ int TABLE::update_virtual_field(Field *vf)
|
||||
ignore_errors == 0. If set then an error was generated.
|
||||
*/
|
||||
|
||||
int TABLE::update_default_fields(bool update_command, bool ignore_errors)
|
||||
int TABLE::update_default_fields(bool ignore_errors)
|
||||
{
|
||||
Query_arena backup_arena;
|
||||
Field **field_ptr;
|
||||
@@ -7950,14 +7950,9 @@ int TABLE::update_default_fields(bool update_command, bool ignore_errors)
|
||||
*/
|
||||
if (!field->has_explicit_value())
|
||||
{
|
||||
if (!update_command)
|
||||
{
|
||||
if (field->default_value &&
|
||||
(field->default_value->flags || field->flags & BLOB_FLAG))
|
||||
res|= (field->default_value->expr->save_in_field(field, 0) < 0);
|
||||
}
|
||||
else
|
||||
res|= field->evaluate_update_default_function();
|
||||
if (field->default_value &&
|
||||
(field->default_value->flags || field->flags & BLOB_FLAG))
|
||||
res|= (field->default_value->expr->save_in_field(field, 0) < 0);
|
||||
if (!ignore_errors && res)
|
||||
{
|
||||
my_error(ER_CALCULATING_DEFAULT_VALUE, MYF(0), field->field_name.str);
|
||||
@@ -7971,6 +7966,21 @@ int TABLE::update_default_fields(bool update_command, bool ignore_errors)
|
||||
}
|
||||
|
||||
|
||||
void TABLE::evaluate_update_default_function()
|
||||
{
|
||||
DBUG_ENTER("TABLE::evaluate_update_default_function");
|
||||
|
||||
if (s->has_update_default_function)
|
||||
for (Field **field_ptr= default_field; *field_ptr ; field_ptr++)
|
||||
{
|
||||
Field *field= (*field_ptr);
|
||||
if (!field->has_explicit_value() && field->has_update_default_function())
|
||||
field->set_time();
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
void TABLE::vers_update_fields()
|
||||
{
|
||||
bitmap_set_bit(write_set, vers_start_field()->field_index);
|
||||
|
Reference in New Issue
Block a user