summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2020-08-25 22:21:07 +0300
committerAleksey Midenkov <midenok@gmail.com>2020-08-25 22:21:07 +0300
commit6586bb51f3167fad9e353e8c9cd69f51e0acec21 (patch)
tree79bc1f700fac38471dca9f503a3c924bb1710ba9 /sql/sql_insert.cc
parentc277bcd591821b9956bf0d0c0a71ceb3e230f060 (diff)
downloadmariadb-git-6586bb51f3167fad9e353e8c9cd69f51e0acec21.tar.gz
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).
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r--sql/sql_insert.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index a24cb61449b..b574e7ab9d7 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -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);