1set default_storage_engine='tokudb';
2drop table if exists s,t;
3create table s (id bigint not null primary key, x bigint);
4insert into s values (1,0),(2,0),(3,0),(4,0);
5create table t like s;
6begin;
7replace into t select * from s;
8rollback;
9create trigger t_trigger before insert on t for each row replace into s values (1000000,0);
10begin;
11replace into t select * from s;
12ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
13rollback;
14drop trigger t_trigger;
15create trigger t_trigger after insert on t for each row replace into s values (1000000,0);
16begin;
17replace into t select * from s;
18ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
19rollback;
20drop trigger t_trigger;
21create trigger t_trigger before insert on t for each row delete from s where id=1000000;
22begin;
23replace into t select * from s;
24ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
25rollback;
26drop trigger t_trigger;
27create trigger t_trigger after insert on t for each row delete from s where id=1000000;
28begin;
29replace into t select * from s;
30ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
31rollback;
32drop trigger t_trigger;
33create trigger t_trigger before insert on t for each row update s set x=x+1 where id=1000000;
34begin;
35replace into t select * from s;
36ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
37rollback;
38drop trigger t_trigger;
39create trigger t_trigger after insert on t for each row update s set x=x+1 where id=1000000;
40begin;
41replace into t select * from s;
42ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
43rollback;
44drop trigger t_trigger;
45truncate table t;
46insert into t values (1,1);
47create trigger t_trigger before insert on t for each row replace into s values (1000000,0);
48begin;
49replace into t select * from s;
50ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
51rollback;
52drop trigger t_trigger;
53create trigger t_trigger after insert on t for each row replace into s values (1000000,0);
54begin;
55replace into t select * from s;
56ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
57rollback;
58drop trigger t_trigger;
59create trigger t_trigger before insert on t for each row delete from s where id=1000000;
60begin;
61replace into t select * from s;
62ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
63rollback;
64drop trigger t_trigger;
65create trigger t_trigger after insert on t for each row delete from s where id=1000000;
66begin;
67replace into t select * from s;
68ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
69rollback;
70drop trigger t_trigger;
71create trigger t_trigger before insert on t for each row update s set x=x+1 where id=1000000;
72begin;
73replace into t select * from s;
74ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
75rollback;
76drop trigger t_trigger;
77create trigger t_trigger after insert on t for each row update s set x=x+1 where id=1000000;
78begin;
79replace into t select * from s;
80ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
81rollback;
82drop trigger t_trigger;
83truncate table t;
84insert into t values (1,1);
85create trigger t_trigger before delete on t for each row replace into s values (1000000,0);
86begin;
87replace into t select * from s;
88ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
89rollback;
90drop trigger t_trigger;
91create trigger t_trigger after delete on t for each row replace into s values (1000000,0);
92begin;
93replace into t select * from s;
94ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
95rollback;
96drop trigger t_trigger;
97create trigger t_trigger before delete on t for each row delete from s where id=1000000;
98begin;
99replace into t select * from s;
100ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
101rollback;
102drop trigger t_trigger;
103create trigger t_trigger after delete on t for each row delete from s where id=1000000;
104begin;
105replace into t select * from s;
106ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
107rollback;
108drop trigger t_trigger;
109create trigger t_trigger before delete on t for each row update s set x=x+1 where id=1000000;
110begin;
111replace into t select * from s;
112ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
113rollback;
114drop trigger t_trigger;
115create trigger t_trigger after delete on t for each row update s set x=x+1 where id=1000000;
116begin;
117replace into t select * from s;
118ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
119rollback;
120drop trigger t_trigger;
121drop table s,t;
122