1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-23467 SIGSEGV in fill_record/fill_record_n_invoke_before_triggers on INSERT DELAYED

Field::make_new_field() resets invisible property (needed for "CREATE
.. SELECT" f.ex.).  Recover invisible property in
Delayed_insert::get_local_table() (unireg_check works by the same
principle).
This commit is contained in:
Aleksey Midenkov
2020-08-25 22:21:07 +03:00
parent c277bcd591
commit 6586bb51f3
3 changed files with 15 additions and 0 deletions

View File

@@ -2614,6 +2614,7 @@ TABLE *Delayed_insert::get_local_table(THD* client_thd)
if (!(*field= (*org_field)->make_new_field(client_thd->mem_root, copy, 1)))
goto error;
(*field)->unireg_check= (*org_field)->unireg_check;
(*field)->invisible= (*org_field)->invisible;
(*field)->orig_table= copy; // Remove connection
(*field)->move_field_offset(adjust_ptrs); // Point at copy->record[0]
memdup_vcol(client_thd, (*field)->vcol_info);