summaryrefslogtreecommitdiff
path: root/sql/sql_load.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2018-02-23 20:22:09 +0100
committerSergei Golubchik <serg@mariadb.org>2018-02-24 01:28:51 +0100
commit5c7a40e3cf0b9869c7023e2f8c48b7c6e65a87dd (patch)
tree8e5845d08af9d54b319d686e5481dc632f359f7e /sql/sql_load.cc
parentfd240a10e3a9726340bc23339d9297f0ad0c680d (diff)
downloadmariadb-git-5c7a40e3cf0b9869c7023e2f8c48b7c6e65a87dd.tar.gz
MDEV-15330 Server crash or assertion `table->insert_values' failure in write_record upon LOAD DATA
copy the corresponding line from mysql_prepare_insert()
Diffstat (limited to 'sql/sql_load.cc')
-rw-r--r--sql/sql_load.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc
index ad97e70bdd8..9d367149eaa 100644
--- a/sql/sql_load.cc
+++ b/sql/sql_load.cc
@@ -409,6 +409,13 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
is_concurrent= (table_list->lock_type == TL_WRITE_CONCURRENT_INSERT);
#endif
+ if (table->versioned(VERS_TIMESTAMP) && handle_duplicates == DUP_REPLACE)
+ {
+ // Additional memory may be required to create historical items.
+ if (table_list->set_insert_values(thd->mem_root))
+ DBUG_RETURN(TRUE);
+ }
+
if (!fields_vars.elements)
{
Field_iterator_table_ref field_iterator;