MDEV-7968 Virtual column set to NULL using load data infile
Don't forget to set thd->lex->unit.insert_table_with_stored_vcol in the mysql_load(). Othewise virtual columns will not be updated.
This commit is contained in:
parent
6f14531b52
commit
cf30074c3f
20
mysql-test/suite/vcol/r/load_data.result
Normal file
20
mysql-test/suite/vcol/r/load_data.result
Normal file
@ -0,0 +1,20 @@
|
||||
create table t1 ( c1 varchar(10), c2 varchar(10), c3 int );
|
||||
insert into t1 values ("a" , "b", 1), ("a" , "b", 2);
|
||||
create table t2 like t1 ;
|
||||
alter table t2 add column c4 bigint unsigned as (CONV(LEFT(MD5(concat(c1,c2,c3)), 16), 16, 10)) persistent unique key;
|
||||
select * into outfile 't1.csv' from t1;
|
||||
load data infile 't1.csv' into table t2 ;
|
||||
Warnings:
|
||||
Warning 1261 Row 1 doesn't contain data for all columns
|
||||
Warning 1261 Row 2 doesn't contain data for all columns
|
||||
select * from t2;
|
||||
c1 c2 c3 c4
|
||||
a b 1 7545402351885872315
|
||||
a b 2 6048842355806993119
|
||||
insert into t2 (c1,c2,c3) values ("a" , "b", 4);
|
||||
select * from t2;
|
||||
c1 c2 c3 c4
|
||||
a b 1 7545402351885872315
|
||||
a b 2 6048842355806993119
|
||||
a b 4 15541743660496249717
|
||||
drop table t1, t2;
|
13
mysql-test/suite/vcol/t/load_data.test
Normal file
13
mysql-test/suite/vcol/t/load_data.test
Normal file
@ -0,0 +1,13 @@
|
||||
#
|
||||
# MDEV-7968 Virtual column set to NULL using load data infile
|
||||
#
|
||||
create table t1 ( c1 varchar(10), c2 varchar(10), c3 int );
|
||||
insert into t1 values ("a" , "b", 1), ("a" , "b", 2);
|
||||
create table t2 like t1 ;
|
||||
alter table t2 add column c4 bigint unsigned as (CONV(LEFT(MD5(concat(c1,c2,c3)), 16), 16, 10)) persistent unique key;
|
||||
select * into outfile 't1.csv' from t1;
|
||||
load data infile 't1.csv' into table t2 ;
|
||||
select * from t2;
|
||||
insert into t2 (c1,c2,c3) values ("a" , "b", 4);
|
||||
select * from t2;
|
||||
drop table t1, t2;
|
@ -314,6 +314,18 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
|
||||
table->prepare_triggers_for_insert_stmt_or_event();
|
||||
table->mark_columns_needed_for_insert();
|
||||
|
||||
if (table->vfield)
|
||||
{
|
||||
for (Field **vfield_ptr= table->vfield; *vfield_ptr; vfield_ptr++)
|
||||
{
|
||||
if ((*vfield_ptr)->stored_in_db)
|
||||
{
|
||||
thd->lex->unit.insert_table_with_stored_vcol= table;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint tot_length=0;
|
||||
bool use_blobs= 0, use_vars= 0;
|
||||
List_iterator_fast<Item> it(fields_vars);
|
||||
|
Loading…
x
Reference in New Issue
Block a user