mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +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);
|
is_concurrent= (table_list->lock_type == TL_WRITE_CONCURRENT_INSERT);
|
||||||
#endif
|
#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)
|
if (!fields_vars.elements)
|
||||||
{
|
{
|
||||||
Field_iterator_table_ref field_iterator;
|
Field_iterator_table_ref field_iterator;
|
||||||
|
Reference in New Issue
Block a user