mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-15330 Server crash or assertion `table->insert_values' failure in write_record upon LOAD DATA
copy the corresponding line from mysql_prepare_insert()
This commit is contained in:
8
mysql-test/suite/versioning/r/load_data.result
Normal file
8
mysql-test/suite/versioning/r/load_data.result
Normal file
@ -0,0 +1,8 @@
|
||||
CREATE TABLE t1 (a INT, b INT, c INT, vc INT AS (c), UNIQUE(a), UNIQUE(b)) WITH SYSTEM VERSIONING;
|
||||
INSERT IGNORE INTO t1 (a,b,c) VALUES (1,2,3);
|
||||
SELECT a, b, c FROM t1 INTO OUTFILE '15330.data';
|
||||
LOAD DATA INFILE '15330.data' IGNORE INTO TABLE t1 (a,b,c);
|
||||
Warnings:
|
||||
Warning 1062 Duplicate entry '1-2038-01-19 04:14:07.999999' for key 'a'
|
||||
LOAD DATA INFILE '15330.data' REPLACE INTO TABLE t1 (a,b,c);
|
||||
DROP TABLE t1;
|
12
mysql-test/suite/versioning/t/load_data.test
Normal file
12
mysql-test/suite/versioning/t/load_data.test
Normal file
@ -0,0 +1,12 @@
|
||||
#
|
||||
# MDEV-15330 Server crash or assertion `table->insert_values' failure in write_record upon LOAD DATA
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT, c INT, vc INT AS (c), UNIQUE(a), UNIQUE(b)) WITH SYSTEM VERSIONING;
|
||||
INSERT IGNORE INTO t1 (a,b,c) VALUES (1,2,3);
|
||||
|
||||
SELECT a, b, c FROM t1 INTO OUTFILE '15330.data';
|
||||
LOAD DATA INFILE '15330.data' IGNORE INTO TABLE t1 (a,b,c);
|
||||
LOAD DATA INFILE '15330.data' REPLACE INTO TABLE t1 (a,b,c);
|
||||
|
||||
# Cleanup
|
||||
DROP TABLE t1;
|
@ -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;
|
||||
|
Reference in New Issue
Block a user