mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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.
This commit is contained in:
@ -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
|
|||||||
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
|
||||||
#
|
#
|
||||||
|
Reference in New Issue
Block a user