Commit b128fa10 authored by dlenev@mysql.com's avatar dlenev@mysql.com

Added test case for bug #16021 "Wrong index given to function in trigger"

which was caused by the same bulk insert optimization as bug #17764 but
had slightly different symptoms.
parent 1626a76f
...@@ -949,9 +949,42 @@ insert into t1 values ...@@ -949,9 +949,42 @@ insert into t1 values
create function f2() returns int return (select max(b) from t2); create function f2() returns int return (select max(b) from t2);
insert into t2 select a, f2() from t1; insert into t2 select a, f2() from t1;
load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1(); load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1();
drop table t1; drop tables t1, t2;
drop function f1; drop function f1;
drop function f2; drop function f2;
create table t1(i int not null, j int not null, n numeric(15,2), primary key(i,j));
create table t2(i int not null, n numeric(15,2), primary key(i));
create trigger t1_ai after insert on t1 for each row
begin
declare sn numeric(15,2);
select sum(n) into sn from t1 where i=new.i;
replace into t2 values(new.i, sn);
end|
insert into t1 values
(1,1,10.00),(1,2,10.00),(1,3,10.00),(1,4,10.00),(1,5,10.00),
(1,6,10.00),(1,7,10.00),(1,8,10.00),(1,9,10.00),(1,10,10.00),
(1,11,10.00),(1,12,10.00),(1,13,10.00),(1,14,10.00),(1,15,10.00);
select * from t1;
i j n
1 1 10.00
1 2 10.00
1 3 10.00
1 4 10.00
1 5 10.00
1 6 10.00
1 7 10.00
1 8 10.00
1 9 10.00
1 10 10.00
1 11 10.00
1 12 10.00
1 13 10.00
1 14 10.00
1 15 10.00
select * from t2;
i n
1 150.00
drop tables t1, t2;
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
conn_id INT, conn_id INT,
......
...@@ -1111,10 +1111,34 @@ insert into t1 values ...@@ -1111,10 +1111,34 @@ insert into t1 values
create function f2() returns int return (select max(b) from t2); create function f2() returns int return (select max(b) from t2);
insert into t2 select a, f2() from t1; insert into t2 select a, f2() from t1;
load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1(); load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1();
drop table t1; drop tables t1, t2;
drop function f1; drop function f1;
drop function f2; drop function f2;
#
# Test for bug #16021 "Wrong index given to function in trigger" which
# was caused by the same bulk insert optimization as bug #17764 but had
# slightly different symptoms (instead of reporting table as crashed
# storage engine reported error number 124)
#
create table t1(i int not null, j int not null, n numeric(15,2), primary key(i,j));
create table t2(i int not null, n numeric(15,2), primary key(i));
delimiter |;
create trigger t1_ai after insert on t1 for each row
begin
declare sn numeric(15,2);
select sum(n) into sn from t1 where i=new.i;
replace into t2 values(new.i, sn);
end|
delimiter ;|
insert into t1 values
(1,1,10.00),(1,2,10.00),(1,3,10.00),(1,4,10.00),(1,5,10.00),
(1,6,10.00),(1,7,10.00),(1,8,10.00),(1,9,10.00),(1,10,10.00),
(1,11,10.00),(1,12,10.00),(1,13,10.00),(1,14,10.00),(1,15,10.00);
select * from t1;
select * from t2;
drop tables t1, t2;
# #
# Test for Bug #16461 connection_id() does not work properly inside trigger # Test for Bug #16461 connection_id() does not work properly inside trigger
# #
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment