~linuxjedi/drizzle/trunk-bug-667053

« back to all changes in this revision

Viewing changes to mysql-test/suite/rpl/r/rpl_trigger.result

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
stop slave;
 
2
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
 
3
reset master;
 
4
reset slave;
 
5
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
 
6
start slave;
 
7
DROP TABLE IF EXISTS t1;
 
8
DROP TABLE IF EXISTS t2;
 
9
DROP TABLE IF EXISTS t3;
 
10
create table t1 (a int auto_increment, primary key (a), b int, rand_value double not null);
 
11
create table t2 (a int auto_increment, primary key (a), b int);
 
12
create table t3 (a int auto_increment, primary key (a), name varchar(64) not null, old_a int, old_b int, rand_value double not null);
 
13
create trigger t1 before insert on t1 for each row
 
14
begin
 
15
insert into t3 values (NULL, "t1", new.a, new.b, rand());
 
16
end|
 
17
create trigger t2 after insert on t2 for each row
 
18
begin
 
19
insert into t3 values (NULL, "t2", new.a, new.b, rand());
 
20
end|
 
21
insert into t3 values(100,"log",0,0,0);
 
22
SET @@RAND_SEED1=658490765, @@RAND_SEED2=635893186;
 
23
insert into t1 values(1,1,rand()),(NULL,2,rand());
 
24
insert into t2 (b) values(last_insert_id());
 
25
insert into t2 values(3,0),(NULL,0);
 
26
insert into t2 values(NULL,0),(500,0);
 
27
select a,b, truncate(rand_value,4) from t1;
 
28
a       b       truncate(rand_value,4)
 
29
1       1       0.4320
 
30
2       2       0.3055
 
31
select * from t2;
 
32
a       b
 
33
1       2
 
34
3       0
 
35
4       0
 
36
5       0
 
37
500     0
 
38
select a,name, old_a, old_b, truncate(rand_value,4) from t3;
 
39
a       name    old_a   old_b   truncate(rand_value,4)
 
40
100     log     0       0       0.0000
 
41
101     t1      1       1       0.3203
 
42
102     t1      0       2       0.5666
 
43
103     t2      1       2       0.9164
 
44
104     t2      3       0       0.8826
 
45
105     t2      4       0       0.6635
 
46
106     t2      5       0       0.6699
 
47
107     t2      500     0       0.3593
 
48
 
 
49
--- On slave --
 
50
select a,b, truncate(rand_value,4) from t1;
 
51
a       b       truncate(rand_value,4)
 
52
1       1       0.4320
 
53
2       2       0.3055
 
54
select * from t2;
 
55
a       b
 
56
1       2
 
57
3       0
 
58
4       0
 
59
5       0
 
60
500     0
 
61
select a,name, old_a, old_b, truncate(rand_value,4) from t3;
 
62
a       name    old_a   old_b   truncate(rand_value,4)
 
63
100     log     0       0       0.0000
 
64
101     t1      1       1       0.3203
 
65
102     t1      0       2       0.5666
 
66
103     t2      1       2       0.9164
 
67
104     t2      3       0       0.8826
 
68
105     t2      4       0       0.6635
 
69
106     t2      5       0       0.6699
 
70
107     t2      500     0       0.3593
 
71
drop table t1,t2,t3;
 
72
select get_lock("bug12480",2);
 
73
get_lock("bug12480",2)
 
74
1
 
75
create table t1 (a datetime,b  datetime, c datetime);
 
76
drop function if exists bug12480;
 
77
create function bug12480() returns datetime
 
78
begin
 
79
set @a=get_lock("bug12480",2);
 
80
return now();
 
81
end|
 
82
create trigger t1_first before insert on t1
 
83
for each row begin
 
84
set @a=get_lock("bug12480",2);
 
85
set new.b= now();
 
86
set new.c= bug12480();
 
87
end
 
88
|
 
89
insert into t1 set a = now();
 
90
select a=b && a=c from t1;
 
91
a=b && a=c
 
92
1
 
93
SELECT routine_name, definer
 
94
FROM information_schema.routines
 
95
WHERE routine_name = 'bug12480';
 
96
routine_name    definer
 
97
bug12480        root@localhost
 
98
SELECT trigger_name, definer
 
99
FROM information_schema.triggers
 
100
WHERE trigger_name = 't1_first';
 
101
trigger_name    definer
 
102
t1_first        root@localhost
 
103
 
 
104
--- On slave --
 
105
SELECT routine_name, definer
 
106
FROM information_schema.routines
 
107
WHERE routine_name = 'bug12480';
 
108
routine_name    definer
 
109
bug12480        root@localhost
 
110
SELECT trigger_name, definer
 
111
FROM information_schema.triggers
 
112
WHERE trigger_name = 't1_first';
 
113
trigger_name    definer
 
114
t1_first        root@localhost
 
115
select a=b && a=c from t1;
 
116
a=b && a=c
 
117
1
 
118
test
 
119
1
 
120
truncate table t1;
 
121
drop trigger t1_first;
 
122
insert into t1 values ("2003-03-03","2003-03-03","2003-03-03"),(bug12480(),bug12480(),bug12480()),(now(),now(),now());
 
123
select a=b && a=c from t1;
 
124
a=b && a=c
 
125
1
 
126
1
 
127
1
 
128
drop function bug12480;
 
129
drop table t1;
 
130
create table t1 (i int);
 
131
create table t2 (i int);
 
132
create trigger tr1 before insert on t1 for each row
 
133
begin
 
134
insert into t2 values (1);
 
135
end|
 
136
create database other;
 
137
use other;
 
138
insert into test.t1 values (1);
 
139
use test;
 
140
drop table t1,t2;
 
141
drop database other;
 
142
test case for BUG#13227
 
143
-------------------
 
144
10
 
145
-------------------
 
146
drop table if exists t110;
 
147
drop table if exists t210,t310;
 
148
create table t110 (f1 int)  /* 2 replicate */;
 
149
insert into t110 values (-5);
 
150
insert into t110 values (-4);
 
151
insert into t110 values (-3);
 
152
insert into t110 values (-2);
 
153
insert into t110 values (-1);
 
154
select * from t110;
 
155
f1
 
156
-5
 
157
-4
 
158
-3
 
159
-2
 
160
-1
 
161
create trigger trg110 before update on t110 /* slave local */
 
162
for each row
 
163
begin
 
164
DECLARE r integer;
 
165
SELECT f2 INTO r FROM t210 where f1=NEW.f1;
 
166
INSERT INTO t310 values (r);
 
167
end|
 
168
create table t210 (f1 int, f2 int) /* slave local */;
 
169
create table t310 (f3 int) /* slave local */;
 
170
insert into t210 values (5, 5*100);
 
171
insert into t210 values (4, 4*100);
 
172
insert into t210 values (3, 3*100);
 
173
insert into t210 values (2, 2*100);
 
174
insert into t210 values (1, 1*100);
 
175
select * from t210;
 
176
f1      f2
 
177
5       500
 
178
4       400
 
179
3       300
 
180
2       200
 
181
1       100
 
182
UPDATE t110 SET f1=5 where f1=-5;
 
183
SELECT * from t110 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
184
f1
 
185
5
 
186
-4
 
187
-3
 
188
-2
 
189
-1
 
190
SELECT * from t310 /* must be f3 5*100 */;
 
191
f3
 
192
500
 
193
UPDATE t110 SET f1=5 where f1=-5;
 
194
UPDATE t110 SET f1=4 where f1=-4;
 
195
UPDATE t110 SET f1=3 where f1=-3;
 
196
UPDATE t110 SET f1=2 where f1=-2;
 
197
UPDATE t110 SET f1=1 where f1=-1;
 
198
SELECT * from t110 /* must be f1 5 ... 1 */;
 
199
f1
 
200
5
 
201
4
 
202
3
 
203
2
 
204
1
 
205
SELECT * from t310 /* must be f3 5 * 100 ...  100 */;
 
206
f3
 
207
500
 
208
400
 
209
300
 
210
200
 
211
100
 
212
drop trigger trg110;
 
213
drop table t210,t310;
 
214
drop table t110;
 
215
-------------------
 
216
9
 
217
-------------------
 
218
drop table if exists t19;
 
219
drop table if exists t29,t39;
 
220
create table t19 (f1 int)  /* 2 replicate */;
 
221
insert into t19 values (-5);
 
222
insert into t19 values (-4);
 
223
insert into t19 values (-3);
 
224
insert into t19 values (-2);
 
225
insert into t19 values (-1);
 
226
select * from t19;
 
227
f1
 
228
-5
 
229
-4
 
230
-3
 
231
-2
 
232
-1
 
233
create trigger trg19 before update on t19 /* slave local */
 
234
for each row
 
235
begin
 
236
DECLARE r integer;
 
237
SELECT f2 INTO r FROM t29 where f1=NEW.f1;
 
238
INSERT INTO t39 values (r);
 
239
end|
 
240
create table t29 (f1 int, f2 int) /* slave local */;
 
241
create table t39 (f3 int) /* slave local */;
 
242
insert into t29 values (5, 5*100);
 
243
insert into t29 values (4, 4*100);
 
244
insert into t29 values (3, 3*100);
 
245
insert into t29 values (2, 2*100);
 
246
insert into t29 values (1, 1*100);
 
247
select * from t29;
 
248
f1      f2
 
249
5       500
 
250
4       400
 
251
3       300
 
252
2       200
 
253
1       100
 
254
UPDATE t19 SET f1=5 where f1=-5;
 
255
SELECT * from t19 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
256
f1
 
257
5
 
258
-4
 
259
-3
 
260
-2
 
261
-1
 
262
SELECT * from t39 /* must be f3 5*100 */;
 
263
f3
 
264
500
 
265
UPDATE t19 SET f1=5 where f1=-5;
 
266
UPDATE t19 SET f1=4 where f1=-4;
 
267
UPDATE t19 SET f1=3 where f1=-3;
 
268
UPDATE t19 SET f1=2 where f1=-2;
 
269
UPDATE t19 SET f1=1 where f1=-1;
 
270
SELECT * from t19 /* must be f1 5 ... 1 */;
 
271
f1
 
272
5
 
273
4
 
274
3
 
275
2
 
276
1
 
277
SELECT * from t39 /* must be f3 5 * 100 ...  100 */;
 
278
f3
 
279
500
 
280
400
 
281
300
 
282
200
 
283
100
 
284
drop trigger trg19;
 
285
drop table t29,t39;
 
286
drop table t19;
 
287
-------------------
 
288
8
 
289
-------------------
 
290
drop table if exists t18;
 
291
drop table if exists t28,t38;
 
292
create table t18 (f1 int)  /* 2 replicate */;
 
293
insert into t18 values (-5);
 
294
insert into t18 values (-4);
 
295
insert into t18 values (-3);
 
296
insert into t18 values (-2);
 
297
insert into t18 values (-1);
 
298
select * from t18;
 
299
f1
 
300
-5
 
301
-4
 
302
-3
 
303
-2
 
304
-1
 
305
create trigger trg18 before update on t18 /* slave local */
 
306
for each row
 
307
begin
 
308
DECLARE r integer;
 
309
SELECT f2 INTO r FROM t28 where f1=NEW.f1;
 
310
INSERT INTO t38 values (r);
 
311
end|
 
312
create table t28 (f1 int, f2 int) /* slave local */;
 
313
create table t38 (f3 int) /* slave local */;
 
314
insert into t28 values (5, 5*100);
 
315
insert into t28 values (4, 4*100);
 
316
insert into t28 values (3, 3*100);
 
317
insert into t28 values (2, 2*100);
 
318
insert into t28 values (1, 1*100);
 
319
select * from t28;
 
320
f1      f2
 
321
5       500
 
322
4       400
 
323
3       300
 
324
2       200
 
325
1       100
 
326
UPDATE t18 SET f1=5 where f1=-5;
 
327
SELECT * from t18 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
328
f1
 
329
5
 
330
-4
 
331
-3
 
332
-2
 
333
-1
 
334
SELECT * from t38 /* must be f3 5*100 */;
 
335
f3
 
336
500
 
337
UPDATE t18 SET f1=5 where f1=-5;
 
338
UPDATE t18 SET f1=4 where f1=-4;
 
339
UPDATE t18 SET f1=3 where f1=-3;
 
340
UPDATE t18 SET f1=2 where f1=-2;
 
341
UPDATE t18 SET f1=1 where f1=-1;
 
342
SELECT * from t18 /* must be f1 5 ... 1 */;
 
343
f1
 
344
5
 
345
4
 
346
3
 
347
2
 
348
1
 
349
SELECT * from t38 /* must be f3 5 * 100 ...  100 */;
 
350
f3
 
351
500
 
352
400
 
353
300
 
354
200
 
355
100
 
356
drop trigger trg18;
 
357
drop table t28,t38;
 
358
drop table t18;
 
359
-------------------
 
360
7
 
361
-------------------
 
362
drop table if exists t17;
 
363
drop table if exists t27,t37;
 
364
create table t17 (f1 int)  /* 2 replicate */;
 
365
insert into t17 values (-5);
 
366
insert into t17 values (-4);
 
367
insert into t17 values (-3);
 
368
insert into t17 values (-2);
 
369
insert into t17 values (-1);
 
370
select * from t17;
 
371
f1
 
372
-5
 
373
-4
 
374
-3
 
375
-2
 
376
-1
 
377
create trigger trg17 before update on t17 /* slave local */
 
378
for each row
 
379
begin
 
380
DECLARE r integer;
 
381
SELECT f2 INTO r FROM t27 where f1=NEW.f1;
 
382
INSERT INTO t37 values (r);
 
383
end|
 
384
create table t27 (f1 int, f2 int) /* slave local */;
 
385
create table t37 (f3 int) /* slave local */;
 
386
insert into t27 values (5, 5*100);
 
387
insert into t27 values (4, 4*100);
 
388
insert into t27 values (3, 3*100);
 
389
insert into t27 values (2, 2*100);
 
390
insert into t27 values (1, 1*100);
 
391
select * from t27;
 
392
f1      f2
 
393
5       500
 
394
4       400
 
395
3       300
 
396
2       200
 
397
1       100
 
398
UPDATE t17 SET f1=5 where f1=-5;
 
399
SELECT * from t17 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
400
f1
 
401
5
 
402
-4
 
403
-3
 
404
-2
 
405
-1
 
406
SELECT * from t37 /* must be f3 5*100 */;
 
407
f3
 
408
500
 
409
UPDATE t17 SET f1=5 where f1=-5;
 
410
UPDATE t17 SET f1=4 where f1=-4;
 
411
UPDATE t17 SET f1=3 where f1=-3;
 
412
UPDATE t17 SET f1=2 where f1=-2;
 
413
UPDATE t17 SET f1=1 where f1=-1;
 
414
SELECT * from t17 /* must be f1 5 ... 1 */;
 
415
f1
 
416
5
 
417
4
 
418
3
 
419
2
 
420
1
 
421
SELECT * from t37 /* must be f3 5 * 100 ...  100 */;
 
422
f3
 
423
500
 
424
400
 
425
300
 
426
200
 
427
100
 
428
drop trigger trg17;
 
429
drop table t27,t37;
 
430
drop table t17;
 
431
-------------------
 
432
6
 
433
-------------------
 
434
drop table if exists t16;
 
435
drop table if exists t26,t36;
 
436
create table t16 (f1 int)  /* 2 replicate */;
 
437
insert into t16 values (-5);
 
438
insert into t16 values (-4);
 
439
insert into t16 values (-3);
 
440
insert into t16 values (-2);
 
441
insert into t16 values (-1);
 
442
select * from t16;
 
443
f1
 
444
-5
 
445
-4
 
446
-3
 
447
-2
 
448
-1
 
449
create trigger trg16 before update on t16 /* slave local */
 
450
for each row
 
451
begin
 
452
DECLARE r integer;
 
453
SELECT f2 INTO r FROM t26 where f1=NEW.f1;
 
454
INSERT INTO t36 values (r);
 
455
end|
 
456
create table t26 (f1 int, f2 int) /* slave local */;
 
457
create table t36 (f3 int) /* slave local */;
 
458
insert into t26 values (5, 5*100);
 
459
insert into t26 values (4, 4*100);
 
460
insert into t26 values (3, 3*100);
 
461
insert into t26 values (2, 2*100);
 
462
insert into t26 values (1, 1*100);
 
463
select * from t26;
 
464
f1      f2
 
465
5       500
 
466
4       400
 
467
3       300
 
468
2       200
 
469
1       100
 
470
UPDATE t16 SET f1=5 where f1=-5;
 
471
SELECT * from t16 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
472
f1
 
473
5
 
474
-4
 
475
-3
 
476
-2
 
477
-1
 
478
SELECT * from t36 /* must be f3 5*100 */;
 
479
f3
 
480
500
 
481
UPDATE t16 SET f1=5 where f1=-5;
 
482
UPDATE t16 SET f1=4 where f1=-4;
 
483
UPDATE t16 SET f1=3 where f1=-3;
 
484
UPDATE t16 SET f1=2 where f1=-2;
 
485
UPDATE t16 SET f1=1 where f1=-1;
 
486
SELECT * from t16 /* must be f1 5 ... 1 */;
 
487
f1
 
488
5
 
489
4
 
490
3
 
491
2
 
492
1
 
493
SELECT * from t36 /* must be f3 5 * 100 ...  100 */;
 
494
f3
 
495
500
 
496
400
 
497
300
 
498
200
 
499
100
 
500
drop trigger trg16;
 
501
drop table t26,t36;
 
502
drop table t16;
 
503
-------------------
 
504
5
 
505
-------------------
 
506
drop table if exists t15;
 
507
drop table if exists t25,t35;
 
508
create table t15 (f1 int)  /* 2 replicate */;
 
509
insert into t15 values (-5);
 
510
insert into t15 values (-4);
 
511
insert into t15 values (-3);
 
512
insert into t15 values (-2);
 
513
insert into t15 values (-1);
 
514
select * from t15;
 
515
f1
 
516
-5
 
517
-4
 
518
-3
 
519
-2
 
520
-1
 
521
create trigger trg15 before update on t15 /* slave local */
 
522
for each row
 
523
begin
 
524
DECLARE r integer;
 
525
SELECT f2 INTO r FROM t25 where f1=NEW.f1;
 
526
INSERT INTO t35 values (r);
 
527
end|
 
528
create table t25 (f1 int, f2 int) /* slave local */;
 
529
create table t35 (f3 int) /* slave local */;
 
530
insert into t25 values (5, 5*100);
 
531
insert into t25 values (4, 4*100);
 
532
insert into t25 values (3, 3*100);
 
533
insert into t25 values (2, 2*100);
 
534
insert into t25 values (1, 1*100);
 
535
select * from t25;
 
536
f1      f2
 
537
5       500
 
538
4       400
 
539
3       300
 
540
2       200
 
541
1       100
 
542
UPDATE t15 SET f1=5 where f1=-5;
 
543
SELECT * from t15 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
544
f1
 
545
5
 
546
-4
 
547
-3
 
548
-2
 
549
-1
 
550
SELECT * from t35 /* must be f3 5*100 */;
 
551
f3
 
552
500
 
553
UPDATE t15 SET f1=5 where f1=-5;
 
554
UPDATE t15 SET f1=4 where f1=-4;
 
555
UPDATE t15 SET f1=3 where f1=-3;
 
556
UPDATE t15 SET f1=2 where f1=-2;
 
557
UPDATE t15 SET f1=1 where f1=-1;
 
558
SELECT * from t15 /* must be f1 5 ... 1 */;
 
559
f1
 
560
5
 
561
4
 
562
3
 
563
2
 
564
1
 
565
SELECT * from t35 /* must be f3 5 * 100 ...  100 */;
 
566
f3
 
567
500
 
568
400
 
569
300
 
570
200
 
571
100
 
572
drop trigger trg15;
 
573
drop table t25,t35;
 
574
drop table t15;
 
575
-------------------
 
576
4
 
577
-------------------
 
578
drop table if exists t14;
 
579
drop table if exists t24,t34;
 
580
create table t14 (f1 int)  /* 2 replicate */;
 
581
insert into t14 values (-5);
 
582
insert into t14 values (-4);
 
583
insert into t14 values (-3);
 
584
insert into t14 values (-2);
 
585
insert into t14 values (-1);
 
586
select * from t14;
 
587
f1
 
588
-5
 
589
-4
 
590
-3
 
591
-2
 
592
-1
 
593
create trigger trg14 before update on t14 /* slave local */
 
594
for each row
 
595
begin
 
596
DECLARE r integer;
 
597
SELECT f2 INTO r FROM t24 where f1=NEW.f1;
 
598
INSERT INTO t34 values (r);
 
599
end|
 
600
create table t24 (f1 int, f2 int) /* slave local */;
 
601
create table t34 (f3 int) /* slave local */;
 
602
insert into t24 values (5, 5*100);
 
603
insert into t24 values (4, 4*100);
 
604
insert into t24 values (3, 3*100);
 
605
insert into t24 values (2, 2*100);
 
606
insert into t24 values (1, 1*100);
 
607
select * from t24;
 
608
f1      f2
 
609
5       500
 
610
4       400
 
611
3       300
 
612
2       200
 
613
1       100
 
614
UPDATE t14 SET f1=5 where f1=-5;
 
615
SELECT * from t14 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
616
f1
 
617
5
 
618
-4
 
619
-3
 
620
-2
 
621
-1
 
622
SELECT * from t34 /* must be f3 5*100 */;
 
623
f3
 
624
500
 
625
UPDATE t14 SET f1=5 where f1=-5;
 
626
UPDATE t14 SET f1=4 where f1=-4;
 
627
UPDATE t14 SET f1=3 where f1=-3;
 
628
UPDATE t14 SET f1=2 where f1=-2;
 
629
UPDATE t14 SET f1=1 where f1=-1;
 
630
SELECT * from t14 /* must be f1 5 ... 1 */;
 
631
f1
 
632
5
 
633
4
 
634
3
 
635
2
 
636
1
 
637
SELECT * from t34 /* must be f3 5 * 100 ...  100 */;
 
638
f3
 
639
500
 
640
400
 
641
300
 
642
200
 
643
100
 
644
drop trigger trg14;
 
645
drop table t24,t34;
 
646
drop table t14;
 
647
-------------------
 
648
3
 
649
-------------------
 
650
drop table if exists t13;
 
651
drop table if exists t23,t33;
 
652
create table t13 (f1 int)  /* 2 replicate */;
 
653
insert into t13 values (-5);
 
654
insert into t13 values (-4);
 
655
insert into t13 values (-3);
 
656
insert into t13 values (-2);
 
657
insert into t13 values (-1);
 
658
select * from t13;
 
659
f1
 
660
-5
 
661
-4
 
662
-3
 
663
-2
 
664
-1
 
665
create trigger trg13 before update on t13 /* slave local */
 
666
for each row
 
667
begin
 
668
DECLARE r integer;
 
669
SELECT f2 INTO r FROM t23 where f1=NEW.f1;
 
670
INSERT INTO t33 values (r);
 
671
end|
 
672
create table t23 (f1 int, f2 int) /* slave local */;
 
673
create table t33 (f3 int) /* slave local */;
 
674
insert into t23 values (5, 5*100);
 
675
insert into t23 values (4, 4*100);
 
676
insert into t23 values (3, 3*100);
 
677
insert into t23 values (2, 2*100);
 
678
insert into t23 values (1, 1*100);
 
679
select * from t23;
 
680
f1      f2
 
681
5       500
 
682
4       400
 
683
3       300
 
684
2       200
 
685
1       100
 
686
UPDATE t13 SET f1=5 where f1=-5;
 
687
SELECT * from t13 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
688
f1
 
689
5
 
690
-4
 
691
-3
 
692
-2
 
693
-1
 
694
SELECT * from t33 /* must be f3 5*100 */;
 
695
f3
 
696
500
 
697
UPDATE t13 SET f1=5 where f1=-5;
 
698
UPDATE t13 SET f1=4 where f1=-4;
 
699
UPDATE t13 SET f1=3 where f1=-3;
 
700
UPDATE t13 SET f1=2 where f1=-2;
 
701
UPDATE t13 SET f1=1 where f1=-1;
 
702
SELECT * from t13 /* must be f1 5 ... 1 */;
 
703
f1
 
704
5
 
705
4
 
706
3
 
707
2
 
708
1
 
709
SELECT * from t33 /* must be f3 5 * 100 ...  100 */;
 
710
f3
 
711
500
 
712
400
 
713
300
 
714
200
 
715
100
 
716
drop trigger trg13;
 
717
drop table t23,t33;
 
718
drop table t13;
 
719
-------------------
 
720
2
 
721
-------------------
 
722
drop table if exists t12;
 
723
drop table if exists t22,t32;
 
724
create table t12 (f1 int)  /* 2 replicate */;
 
725
insert into t12 values (-5);
 
726
insert into t12 values (-4);
 
727
insert into t12 values (-3);
 
728
insert into t12 values (-2);
 
729
insert into t12 values (-1);
 
730
select * from t12;
 
731
f1
 
732
-5
 
733
-4
 
734
-3
 
735
-2
 
736
-1
 
737
create trigger trg12 before update on t12 /* slave local */
 
738
for each row
 
739
begin
 
740
DECLARE r integer;
 
741
SELECT f2 INTO r FROM t22 where f1=NEW.f1;
 
742
INSERT INTO t32 values (r);
 
743
end|
 
744
create table t22 (f1 int, f2 int) /* slave local */;
 
745
create table t32 (f3 int) /* slave local */;
 
746
insert into t22 values (5, 5*100);
 
747
insert into t22 values (4, 4*100);
 
748
insert into t22 values (3, 3*100);
 
749
insert into t22 values (2, 2*100);
 
750
insert into t22 values (1, 1*100);
 
751
select * from t22;
 
752
f1      f2
 
753
5       500
 
754
4       400
 
755
3       300
 
756
2       200
 
757
1       100
 
758
UPDATE t12 SET f1=5 where f1=-5;
 
759
SELECT * from t12 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
760
f1
 
761
5
 
762
-4
 
763
-3
 
764
-2
 
765
-1
 
766
SELECT * from t32 /* must be f3 5*100 */;
 
767
f3
 
768
500
 
769
UPDATE t12 SET f1=5 where f1=-5;
 
770
UPDATE t12 SET f1=4 where f1=-4;
 
771
UPDATE t12 SET f1=3 where f1=-3;
 
772
UPDATE t12 SET f1=2 where f1=-2;
 
773
UPDATE t12 SET f1=1 where f1=-1;
 
774
SELECT * from t12 /* must be f1 5 ... 1 */;
 
775
f1
 
776
5
 
777
4
 
778
3
 
779
2
 
780
1
 
781
SELECT * from t32 /* must be f3 5 * 100 ...  100 */;
 
782
f3
 
783
500
 
784
400
 
785
300
 
786
200
 
787
100
 
788
drop trigger trg12;
 
789
drop table t22,t32;
 
790
drop table t12;
 
791
-------------------
 
792
1
 
793
-------------------
 
794
drop table if exists t11;
 
795
drop table if exists t21,t31;
 
796
create table t11 (f1 int)  /* 2 replicate */;
 
797
insert into t11 values (-5);
 
798
insert into t11 values (-4);
 
799
insert into t11 values (-3);
 
800
insert into t11 values (-2);
 
801
insert into t11 values (-1);
 
802
select * from t11;
 
803
f1
 
804
-5
 
805
-4
 
806
-3
 
807
-2
 
808
-1
 
809
create trigger trg11 before update on t11 /* slave local */
 
810
for each row
 
811
begin
 
812
DECLARE r integer;
 
813
SELECT f2 INTO r FROM t21 where f1=NEW.f1;
 
814
INSERT INTO t31 values (r);
 
815
end|
 
816
create table t21 (f1 int, f2 int) /* slave local */;
 
817
create table t31 (f3 int) /* slave local */;
 
818
insert into t21 values (5, 5*100);
 
819
insert into t21 values (4, 4*100);
 
820
insert into t21 values (3, 3*100);
 
821
insert into t21 values (2, 2*100);
 
822
insert into t21 values (1, 1*100);
 
823
select * from t21;
 
824
f1      f2
 
825
5       500
 
826
4       400
 
827
3       300
 
828
2       200
 
829
1       100
 
830
UPDATE t11 SET f1=5 where f1=-5;
 
831
SELECT * from t11 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
 
832
f1
 
833
5
 
834
-4
 
835
-3
 
836
-2
 
837
-1
 
838
SELECT * from t31 /* must be f3 5*100 */;
 
839
f3
 
840
500
 
841
UPDATE t11 SET f1=5 where f1=-5;
 
842
UPDATE t11 SET f1=4 where f1=-4;
 
843
UPDATE t11 SET f1=3 where f1=-3;
 
844
UPDATE t11 SET f1=2 where f1=-2;
 
845
UPDATE t11 SET f1=1 where f1=-1;
 
846
SELECT * from t11 /* must be f1 5 ... 1 */;
 
847
f1
 
848
5
 
849
4
 
850
3
 
851
2
 
852
1
 
853
SELECT * from t31 /* must be f3 5 * 100 ...  100 */;
 
854
f3
 
855
500
 
856
400
 
857
300
 
858
200
 
859
100
 
860
drop trigger trg11;
 
861
drop table t21,t31;
 
862
drop table t11;
 
863
STOP SLAVE;
 
864
FLUSH LOGS;
 
865
RESET SLAVE;
 
866
START SLAVE;
 
867
SELECT MASTER_POS_WAIT('master-bin.000001', 513) >= 0;
 
868
MASTER_POS_WAIT('master-bin.000001', 513) >= 0
 
869
1
 
870
SHOW TABLES LIKE 't_';
 
871
Tables_in_test (t_)
 
872
t1
 
873
t2
 
874
SHOW TRIGGERS;
 
875
Trigger Event   Table   Statement       Timing  Created sql_mode        Definer character_set_client    collation_connection    Database Collation
 
876
trg1    INSERT  t1      INSERT INTO t2 VALUES(CURRENT_USER())   AFTER   NULL                    latin1  latin1_swedish_ci       latin1_swedish_ci
 
877
SELECT * FROM t1;
 
878
c
 
879
1
 
880
SELECT * FROM t2;
 
881
s
 
882
@
 
883
INSERT INTO t1 VALUES(2);
 
884
SELECT * FROM t1;
 
885
c
 
886
1
 
887
2
 
888
SELECT * FROM t2;
 
889
s
 
890
@
 
891
root@localhost
 
892
DROP TRIGGER trg1;
 
893
Warnings:
 
894
Warning 1454    No definer attribute for trigger 'test'.'trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
 
895
DROP TABLE t1;
 
896
DROP TABLE t2;
 
897
STOP SLAVE;
 
898
RESET SLAVE;
 
899
SHOW TABLES LIKE 't_';
 
900
Tables_in_test (t_)
 
901
SHOW TRIGGERS;
 
902
Trigger Event   Table   Statement       Timing  Created sql_mode        Definer character_set_client    collation_connection    Database Collation
 
903
RESET MASTER;
 
904
START SLAVE;
 
905
 
 
906
---> Test for BUG#20438
 
907
 
 
908
---> Preparing environment...
 
909
---> connection: master
 
910
DROP TABLE IF EXISTS t1;
 
911
DROP TABLE IF EXISTS t2;
 
912
 
 
913
---> Synchronizing slave with master...
 
914
 
 
915
---> connection: master
 
916
 
 
917
---> Creating objects...
 
918
CREATE TABLE t1(c INT);
 
919
CREATE TABLE t2(c INT);
 
920
/*!50003 CREATE TRIGGER t1_bi BEFORE INSERT ON t1
 
921
FOR EACH ROW
 
922
INSERT INTO t2 VALUES(NEW.c * 10) */;
 
923
 
 
924
---> Inserting value...
 
925
INSERT INTO t1 VALUES(1);
 
926
 
 
927
---> Checking on master...
 
928
SELECT * FROM t1;
 
929
c
 
930
1
 
931
SELECT * FROM t2;
 
932
c
 
933
10
 
934
 
 
935
---> Synchronizing slave with master...
 
936
---> connection: master
 
937
 
 
938
---> Checking on slave...
 
939
SELECT * FROM t1;
 
940
c
 
941
1
 
942
SELECT * FROM t2;
 
943
c
 
944
10
 
945
 
 
946
---> connection: master
 
947
 
 
948
---> Cleaning up...
 
949
DROP TABLE t1;
 
950
DROP TABLE t2;
 
951
drop table if exists t1;
 
952
create table t1(a int, b varchar(50));
 
953
drop trigger not_a_trigger;
 
954
ERROR HY000: Trigger does not exist
 
955
drop trigger if exists not_a_trigger;
 
956
Warnings:
 
957
Note    1360    Trigger does not exist
 
958
create trigger t1_bi before insert on t1
 
959
for each row set NEW.b := "In trigger t1_bi";
 
960
insert into t1 values (1, "a");
 
961
drop trigger if exists t1_bi;
 
962
insert into t1 values (2, "b");
 
963
drop trigger if exists t1_bi;
 
964
Warnings:
 
965
Note    1360    Trigger does not exist
 
966
insert into t1 values (3, "c");
 
967
select * from t1;
 
968
a       b
 
969
1       In trigger t1_bi
 
970
2       b
 
971
3       c
 
972
select * from t1;
 
973
a       b
 
974
1       In trigger t1_bi
 
975
2       b
 
976
3       c
 
977
drop table t1;