mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-11706 Assertion `is_stat_field || !table || (!table->write_set || bitmap_is_set(table->write_set, field_index) || (table->vcol_set && bitmap_is_set(table->vcol_set, field_index)))' failed in Field_time::store_TIME_with_warning
vcols and triggers. Revert 094f4cf778
,
backport the correct fix (Table_triggers_list::mark_fields_used() not
marking vcols) from 10.2.
This commit is contained in:
@ -9033,9 +9033,7 @@ fill_record(THD * thd, List<Item> &fields, List<Item> &values,
|
||||
/* Update virtual fields*/
|
||||
thd->abort_on_warning= FALSE;
|
||||
if (vcol_table && vcol_table->vfield &&
|
||||
update_virtual_fields(thd, vcol_table,
|
||||
vcol_table->triggers ? VCOL_UPDATE_ALL :
|
||||
VCOL_UPDATE_FOR_WRITE))
|
||||
update_virtual_fields(thd, vcol_table, VCOL_UPDATE_FOR_WRITE))
|
||||
goto err;
|
||||
thd->abort_on_warning= save_abort_on_warning;
|
||||
thd->no_errors= save_no_errors;
|
||||
@ -9099,9 +9097,7 @@ fill_record_n_invoke_before_triggers(THD *thd, List<Item> &fields,
|
||||
if (item_field && item_field->field &&
|
||||
(table= item_field->field->table) &&
|
||||
table->vfield)
|
||||
result= update_virtual_fields(thd, table,
|
||||
table->triggers ? VCOL_UPDATE_ALL :
|
||||
VCOL_UPDATE_FOR_WRITE);
|
||||
result= update_virtual_fields(thd, table, VCOL_UPDATE_FOR_WRITE);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
@ -9186,9 +9182,7 @@ fill_record(THD *thd, Field **ptr, List<Item> &values, bool ignore_errors,
|
||||
/* Update virtual fields*/
|
||||
thd->abort_on_warning= FALSE;
|
||||
if (table->vfield &&
|
||||
update_virtual_fields(thd, table,
|
||||
table->triggers ? VCOL_UPDATE_ALL :
|
||||
VCOL_UPDATE_FOR_WRITE))
|
||||
update_virtual_fields(thd, table, VCOL_UPDATE_FOR_WRITE))
|
||||
goto err;
|
||||
thd->abort_on_warning= abort_on_warning_saved;
|
||||
DBUG_RETURN(thd->is_error());
|
||||
@ -9241,9 +9235,7 @@ fill_record_n_invoke_before_triggers(THD *thd, Field **ptr,
|
||||
{
|
||||
TABLE *table= (*ptr)->table;
|
||||
if (table->vfield)
|
||||
result= update_virtual_fields(thd, table,
|
||||
table->triggers ? VCOL_UPDATE_ALL :
|
||||
VCOL_UPDATE_FOR_WRITE);
|
||||
result= update_virtual_fields(thd, table, VCOL_UPDATE_FOR_WRITE);
|
||||
}
|
||||
return result;
|
||||
|
||||
|
Reference in New Issue
Block a user