~ubuntu-branches/ubuntu/precise/mysql-5.1/precise

« back to all changes in this revision

Viewing changes to mysql-test/suite/ndb/r/ndb_trigger.result

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Tretkowski
  • Date: 2010-03-17 14:56:02 UTC
  • Revision ID: james.westby@ubuntu.com-20100317145602-x7e30l1b2sb5s6w6
Tags: upstream-5.1.45
ImportĀ upstreamĀ versionĀ 5.1.45

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
drop table if exists t1, t2, t3, t4, t5;
 
2
create table t1 (id int primary key, a int not null, b decimal (63,30) default 0) engine=ndb;
 
3
create table t2 (op char(1), a int not null, b decimal (63,30)) engine=ndb;
 
4
create table t3  engine=ndb select 1 as i;
 
5
create table t4 (a int not null primary key, b int) engine=ndb;
 
6
create table t5 (a int not null primary key, b int) engine=ndb;
 
7
create trigger t1_bu before update on t1 for each row
 
8
begin
 
9
insert into t2 values ("u", old.a, old.b);
 
10
set new.b = old.b + 10;
 
11
end;//
 
12
create trigger t1_bd before delete on t1 for each row
 
13
begin
 
14
insert into t2 values ("d", old.a, old.b);
 
15
end;//
 
16
create trigger t4_au after update on t4
 
17
for each row begin
 
18
update t5 set b = b+1;
 
19
end;
 
20
//
 
21
create trigger t4_ad after delete on t4
 
22
for each row begin
 
23
update t5 set b = b+1;
 
24
end;
 
25
//
 
26
insert into t1 values (1, 1, 1.05), (2, 2, 2.05), (3, 3, 3.05), (4, 4, 4.05);
 
27
insert into t4 values (1,1), (2,2), (3,3), (4, 4);
 
28
insert into t5 values (1,0);
 
29
update t1 set a=5 where a != 3;
 
30
select * from t1 order by id;
 
31
id      a       b
 
32
1       5       11.050000000000000000000000000000
 
33
2       5       12.050000000000000000000000000000
 
34
3       3       3.050000000000000000000000000000
 
35
4       5       14.050000000000000000000000000000
 
36
select * from t2 order by op, a, b;
 
37
op      a       b
 
38
u       1       1.050000000000000000000000000000
 
39
u       2       2.050000000000000000000000000000
 
40
u       4       4.050000000000000000000000000000
 
41
delete from t2;
 
42
update t1, t3 set a=6 where a = 5;
 
43
select * from t1 order by id;
 
44
id      a       b
 
45
1       6       21.050000000000000000000000000000
 
46
2       6       22.050000000000000000000000000000
 
47
3       3       3.050000000000000000000000000000
 
48
4       6       24.050000000000000000000000000000
 
49
select * from t2 order by op, a, b;
 
50
op      a       b
 
51
u       5       11.050000000000000000000000000000
 
52
u       5       12.050000000000000000000000000000
 
53
u       5       14.050000000000000000000000000000
 
54
delete from t2;
 
55
delete from t1 where a != 3;
 
56
select * from t1 order by id;
 
57
id      a       b
 
58
3       3       3.050000000000000000000000000000
 
59
select * from t2 order by op, a, b;
 
60
op      a       b
 
61
d       6       21.050000000000000000000000000000
 
62
d       6       22.050000000000000000000000000000
 
63
d       6       24.050000000000000000000000000000
 
64
delete from t2;
 
65
insert into t1 values (1, 1, 1.05), (2, 2, 2.05), (4, 4, 4.05);
 
66
delete t1 from t1, t3 where a != 3;
 
67
select * from t1 order by id;
 
68
id      a       b
 
69
3       3       3.050000000000000000000000000000
 
70
select * from t2 order by op, a, b;
 
71
op      a       b
 
72
d       1       1.050000000000000000000000000000
 
73
d       2       2.050000000000000000000000000000
 
74
d       4       4.050000000000000000000000000000
 
75
delete from t2;
 
76
insert into t1 values (4, 4, 4.05);
 
77
insert into t1 (id, a) values (4, 1), (3, 1) on duplicate key update a= a + 1;
 
78
select * from t1 order by id;
 
79
id      a       b
 
80
3       4       13.050000000000000000000000000000
 
81
4       5       14.050000000000000000000000000000
 
82
select * from t2 order by op, a, b;
 
83
op      a       b
 
84
u       3       3.050000000000000000000000000000
 
85
u       4       4.050000000000000000000000000000
 
86
delete from t2;
 
87
delete from t3;
 
88
insert into t3 values (4), (3);
 
89
insert into t1 (id, a) (select i, 1 from t3) on duplicate key update a= a + 1;
 
90
select * from t1 order by id;
 
91
id      a       b
 
92
3       5       23.050000000000000000000000000000
 
93
4       6       24.050000000000000000000000000000
 
94
select * from t2 order by op, a, b;
 
95
op      a       b
 
96
u       4       13.050000000000000000000000000000
 
97
u       5       14.050000000000000000000000000000
 
98
delete from t2;
 
99
replace into t1 (id, a) values (4, 1), (3, 1);
 
100
select * from t1 order by id;
 
101
id      a       b
 
102
3       1       0.000000000000000000000000000000
 
103
4       1       0.000000000000000000000000000000
 
104
select * from t2 order by op, a, b;
 
105
op      a       b
 
106
d       5       23.050000000000000000000000000000
 
107
d       6       24.050000000000000000000000000000
 
108
delete from t1;
 
109
delete from t2;
 
110
insert into t1 values (3, 1, 1.05), (4, 1, 2.05);
 
111
replace into t1 (id, a) (select i, 2 from t3);
 
112
select * from t1 order by id;
 
113
id      a       b
 
114
3       2       0.000000000000000000000000000000
 
115
4       2       0.000000000000000000000000000000
 
116
select * from t2 order by op, a, b;
 
117
op      a       b
 
118
d       1       1.050000000000000000000000000000
 
119
d       1       2.050000000000000000000000000000
 
120
delete from t1;
 
121
delete from t2;
 
122
insert into t1 values (3, 1, 1.05), (5, 2, 2.05);
 
123
load data infile '../../../std_data/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (id, a);
 
124
select * from t1 order by id;
 
125
id      a       b
 
126
3       4       0.000000000000000000000000000000
 
127
5       6       0.000000000000000000000000000000
 
128
select * from t2 order by op, a, b;
 
129
op      a       b
 
130
d       1       1.050000000000000000000000000000
 
131
d       2       2.050000000000000000000000000000
 
132
update t4 set b = 10 where a = 1;
 
133
select * from t5 order by a;
 
134
a       b
 
135
1       1
 
136
update t5 set b = 0;
 
137
delete from t4 where a = 1;
 
138
select * from t5 order by a;
 
139
a       b
 
140
1       1
 
141
drop trigger t4_au;
 
142
drop trigger t4_ad;
 
143
drop table t1, t2, t3, t4, t5;
 
144
CREATE TABLE t1 (
 
145
id INT NOT NULL PRIMARY KEY,
 
146
xy INT
 
147
) ENGINE=ndbcluster;
 
148
INSERT INTO t1 VALUES (1, 0);
 
149
CREATE TRIGGER t1_update AFTER UPDATE ON t1 FOR EACH ROW BEGIN REPLACE INTO t2 SELECT * FROM t1 WHERE t1.id = NEW.id; END //
 
150
CREATE TABLE t2 (
 
151
id INT NOT NULL PRIMARY KEY,
 
152
xy INT
 
153
) ENGINE=ndbcluster;
 
154
INSERT INTO t2 VALUES (2, 0);
 
155
CREATE TABLE t3 (id INT NOT NULL PRIMARY KEY) ENGINE=ndbcluster;
 
156
INSERT INTO t3 VALUES (1);
 
157
CREATE TABLE t4 LIKE t1;
 
158
CREATE TRIGGER t4_update AFTER UPDATE ON t4 FOR EACH ROW BEGIN REPLACE INTO t5 SELECT * FROM t4 WHERE t4.id = NEW.id; END //
 
159
CREATE TABLE t5 LIKE t2;
 
160
UPDATE t1 SET xy = 3 WHERE id = 1;
 
161
SELECT xy FROM t1 where id = 1;
 
162
xy
 
163
3
 
164
SELECT xy FROM t2 where id = 1;
 
165
xy
 
166
3
 
167
UPDATE t1 SET xy  = 4 WHERE id IN (SELECT id FROM t3 WHERE id = 1);
 
168
SELECT xy FROM t1 where id = 1;
 
169
xy
 
170
4
 
171
SELECT xy FROM t2 where id = 1;
 
172
xy
 
173
4
 
174
INSERT INTO t4 SELECT * FROM t1;
 
175
INSERT INTO t5 SELECT * FROM t2;
 
176
UPDATE t1,t4 SET t1.xy = 3, t4.xy = 3 WHERE t1.id = 1 AND t4.id = 1;
 
177
SELECT xy FROM t1 where id = 1;
 
178
xy
 
179
3
 
180
SELECT xy FROM t2 where id = 1;
 
181
xy
 
182
3
 
183
SELECT xy FROM t4 where id = 1;
 
184
xy
 
185
3
 
186
SELECT xy FROM t5 where id = 1;
 
187
xy
 
188
3
 
189
UPDATE t1,t4 SET t1.xy = 4, t4.xy = 4 WHERE t1.id IN (SELECT id FROM t3 WHERE id = 1) AND t4.id IN (SELECT id FROM t3 WHERE id = 1);
 
190
SELECT xy FROM t1 where id = 1;
 
191
xy
 
192
4
 
193
SELECT xy FROM t2 where id = 1;
 
194
xy
 
195
4
 
196
SELECT xy FROM t4 where id = 1;
 
197
xy
 
198
4
 
199
SELECT xy FROM t5 where id = 1;
 
200
xy
 
201
4
 
202
INSERT INTO t1 VALUES (1,0) ON DUPLICATE KEY UPDATE xy = 5;
 
203
SELECT xy FROM t1 where id = 1;
 
204
xy
 
205
5
 
206
SELECT xy FROM t2 where id = 1;
 
207
xy
 
208
5
 
209
DROP TRIGGER t1_update;
 
210
DROP TRIGGER t4_update;
 
211
CREATE TRIGGER t1_delete AFTER DELETE ON t1 FOR EACH ROW BEGIN REPLACE INTO t2 SELECT * FROM t1 WHERE t1.id > 4; END //
 
212
CREATE TRIGGER t4_delete AFTER DELETE ON t4 FOR EACH ROW BEGIN REPLACE INTO t5 SELECT * FROM t4 WHERE t4.id > 4; END //
 
213
INSERT INTO t1 VALUES (5, 0),(6,0);
 
214
INSERT INTO t2 VALUES (5, 1),(6,1);
 
215
INSERT INTO t3 VALUES (5);
 
216
SELECT * FROM t1 order by id;
 
217
id      xy
 
218
1       5
 
219
5       0
 
220
6       0
 
221
SELECT * FROM t2 order by id;
 
222
id      xy
 
223
1       5
 
224
2       0
 
225
5       1
 
226
6       1
 
227
DELETE FROM t1 WHERE id IN (SELECT id FROM t3 WHERE id = 5);
 
228
SELECT * FROM t1 order by id;
 
229
id      xy
 
230
1       5
 
231
6       0
 
232
SELECT * FROM t2 order by id;
 
233
id      xy
 
234
1       5
 
235
2       0
 
236
5       1
 
237
6       0
 
238
INSERT INTO t1 VALUES (5,0);
 
239
UPDATE t2 SET xy = 1 WHERE id = 6;
 
240
TRUNCATE t4;
 
241
INSERT INTO t4 SELECT * FROM t1;
 
242
TRUNCATE t5;
 
243
INSERT INTO t5 SELECT * FROM t2;
 
244
SELECT * FROM t1 order by id;
 
245
id      xy
 
246
1       5
 
247
5       0
 
248
6       0
 
249
SELECT * FROM t2 order by id;
 
250
id      xy
 
251
1       5
 
252
2       0
 
253
5       1
 
254
6       1
 
255
SELECT * FROM t4 order by id;
 
256
id      xy
 
257
1       5
 
258
5       0
 
259
6       0
 
260
SELECT * FROM t5 order by id;
 
261
id      xy
 
262
1       5
 
263
2       0
 
264
5       1
 
265
6       1
 
266
DELETE FROM t1,t4 USING t1,t3,t4 WHERE t1.id IN (SELECT id FROM t3 WHERE id = 5) AND t4.id IN (SELECT id FROM t3 WHERE id = 5);
 
267
SELECT * FROM t1 order by id;
 
268
id      xy
 
269
1       5
 
270
6       0
 
271
SELECT * FROM t2 order by id;
 
272
id      xy
 
273
1       5
 
274
2       0
 
275
5       1
 
276
6       0
 
277
SELECT * FROM t4 order by id;
 
278
id      xy
 
279
1       5
 
280
6       0
 
281
SELECT * FROM t5 order by id;
 
282
id      xy
 
283
1       5
 
284
2       0
 
285
5       1
 
286
6       0
 
287
INSERT INTO t1 VALUES (5, 0);
 
288
REPLACE INTO t2 VALUES (6,1);
 
289
SELECT * FROM t1 order by id;
 
290
id      xy
 
291
1       5
 
292
5       0
 
293
6       0
 
294
SELECT * FROM t2 order by id;
 
295
id      xy
 
296
1       5
 
297
2       0
 
298
5       1
 
299
6       1
 
300
REPLACE INTO t1 VALUES (5, 1);
 
301
SELECT * FROM t1 order by id;
 
302
id      xy
 
303
1       5
 
304
5       1
 
305
6       0
 
306
SELECT * FROM t2 order by id;
 
307
id      xy
 
308
1       5
 
309
2       0
 
310
5       1
 
311
6       0
 
312
DROP TRIGGER t1_delete;
 
313
DROP TRIGGER t4_delete;
 
314
DROP TABLE t1, t2, t3, t4, t5;
 
315
End of 5.1 tests