~ubuntu-branches/ubuntu/hardy/mysql-dfsg-5.0/hardy-updates

« back to all changes in this revision

Viewing changes to mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result

  • Committer: Bazaar Package Importer
  • Author(s): sean finney
  • Date: 2007-05-13 12:32:45 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: james.westby@ubuntu.com-20070513123245-8c3l187dk34cz2ar
Tags: 5.0.41-2
the previous "translation changes" inadvertently introduced unrelated
changes in the package control file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
SET @NO_REFRESH = IF( '' = '', 0, 1);
 
2
USE test;
 
3
drop table if exists tb3 ;
 
4
create table tb3 (
 
5
f118 char not null DEFAULT 'a', 
 
6
f119 char binary not null DEFAULT b'101', 
 
7
f120 char ascii not null DEFAULT b'101', 
 
8
f121 tinytext, 
 
9
f122 text, 
 
10
f123 mediumtext, 
 
11
f124 longtext unicode, 
 
12
f125 tinyblob, 
 
13
f126 blob, 
 
14
f127 mediumblob, 
 
15
f128 longblob, 
 
16
f129 binary not null DEFAULT b'101', 
 
17
f130 tinyint not null DEFAULT 99, 
 
18
f131 tinyint unsigned not null DEFAULT 99, 
 
19
f132 tinyint zerofill not null DEFAULT 99, 
 
20
f133 tinyint unsigned zerofill not null DEFAULT 99, 
 
21
f134 smallint not null DEFAULT 999, 
 
22
f135 smallint unsigned not null DEFAULT 999, 
 
23
f136 smallint zerofill not null DEFAULT 999,  
 
24
f137 smallint unsigned zerofill not null DEFAULT 999, 
 
25
f138 mediumint not null DEFAULT 9999, 
 
26
f139 mediumint unsigned not null DEFAULT 9999, 
 
27
f140 mediumint zerofill not null DEFAULT 9999, 
 
28
f141 mediumint unsigned zerofill not null DEFAULT 9999, 
 
29
f142 int not null DEFAULT 99999, 
 
30
f143 int unsigned not null DEFAULT 99999, 
 
31
f144 int zerofill not null DEFAULT 99999, 
 
32
f145 int unsigned zerofill not null DEFAULT 99999, 
 
33
f146 bigint not null DEFAULT 999999, 
 
34
f147 bigint unsigned not null DEFAULT 999999, 
 
35
f148 bigint zerofill not null DEFAULT 999999, 
 
36
f149 bigint unsigned zerofill not null DEFAULT 999999, 
 
37
f150 decimal not null DEFAULT 999.999, 
 
38
f151 decimal unsigned not null DEFAULT 999.17, 
 
39
f152 decimal zerofill not null DEFAULT 999.999, 
 
40
f153 decimal unsigned zerofill, 
 
41
f154 decimal (0), 
 
42
f155 decimal (64), 
 
43
f156 decimal (0) unsigned, 
 
44
f157 decimal (64) unsigned, 
 
45
f158 decimal (0) zerofill, 
 
46
f159 decimal (64) zerofill, 
 
47
f160 decimal (0) unsigned zerofill, 
 
48
f161 decimal (64) unsigned zerofill, 
 
49
f162 decimal (0,0), 
 
50
f163 decimal (63,30), 
 
51
f164 decimal (0,0) unsigned, 
 
52
f165 decimal (63,30) unsigned, 
 
53
f166 decimal (0,0) zerofill, 
 
54
f167 decimal (63,30) zerofill, 
 
55
f168 decimal (0,0) unsigned zerofill, 
 
56
f169 decimal (63,30) unsigned zerofill, 
 
57
f170 numeric, 
 
58
f171 numeric unsigned, 
 
59
f172 numeric zerofill, 
 
60
f173 numeric unsigned zerofill, 
 
61
f174 numeric (0), 
 
62
f175 numeric (64) 
 
63
) Engine = myisam;
 
64
Warnings:
 
65
Note    1265    Data truncated for column 'f150' at row 1
 
66
Note    1265    Data truncated for column 'f151' at row 1
 
67
Note    1265    Data truncated for column 'f152' at row 1
 
68
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
 
69
 
 
70
Testcase 3.5.10.1/2/3:
 
71
----------------------
 
72
Create view vw11 as select * from tb3
 
73
where f122 like 'Test 3.5.10.1/2/3%';
 
74
Create trigger trg1a before insert on tb3
 
75
for each row set new.f163=111.11;
 
76
Create trigger trg1b after insert on tb3
 
77
for each row set @test_var='After Insert';
 
78
Create trigger trg1c before update on tb3
 
79
for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
 
80
Create trigger trg1d after update on tb3
 
81
for each row set @test_var='After Update';
 
82
Create trigger trg1e before delete on tb3
 
83
for each row set @test_var=5;
 
84
Create trigger trg1f after delete on tb3
 
85
for each row set @test_var= 2* @test_var+7;
 
86
Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
 
87
Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
 
88
Insert into vw11 (f122, f151) values ('Not in View', 3);
 
89
select f121, f122, f151, f163
 
90
from tb3 where f122 like 'Test 3.5.10.1/2/3%';
 
91
f121    f122    f151    f163
 
92
NULL    Test 3.5.10.1/2/3       1       111.110000000000000000000000000000
 
93
NULL    Test 3.5.10.1/2/3       2       111.110000000000000000000000000000
 
94
select f121, f122, f151, f163 from vw11;
 
95
f121    f122    f151    f163
 
96
NULL    Test 3.5.10.1/2/3       1       111.110000000000000000000000000000
 
97
NULL    Test 3.5.10.1/2/3       2       111.110000000000000000000000000000
 
98
select f121, f122, f151, f163
 
99
from tb3 where f122 like 'Not in View';
 
100
f121    f122    f151    f163
 
101
NULL    Not in View     3       111.110000000000000000000000000000
 
102
Update vw11 set f163=1;
 
103
select f121, f122, f151, f163 from tb3
 
104
where f122 like 'Test 3.5.10.1/2/3%';
 
105
f121    f122    f151    f163
 
106
Y       Test 3.5.10.1/2/3-Update        1       1.000000000000000000000000000000
 
107
Y       Test 3.5.10.1/2/3-Update        2       1.000000000000000000000000000000
 
108
select f121, f122, f151, f163 from vw11;
 
109
f121    f122    f151    f163
 
110
Y       Test 3.5.10.1/2/3-Update        1       1.000000000000000000000000000000
 
111
Y       Test 3.5.10.1/2/3-Update        2       1.000000000000000000000000000000
 
112
set @test_var=0;
 
113
Select @test_var as 'before delete';
 
114
before delete
 
115
0
 
116
delete from vw11 where f151=1;
 
117
select f121, f122, f151, f163 from tb3
 
118
where f122 like 'Test 3.5.10.1/2/3%';
 
119
f121    f122    f151    f163
 
120
Y       Test 3.5.10.1/2/3-Update        2       1.000000000000000000000000000000
 
121
select f121, f122, f151, f163 from vw11;
 
122
f121    f122    f151    f163
 
123
Y       Test 3.5.10.1/2/3-Update        2       1.000000000000000000000000000000
 
124
Select @test_var as 'after delete';
 
125
after delete
 
126
17
 
127
drop view vw11;
 
128
drop trigger trg1a;
 
129
drop trigger trg1b;
 
130
drop trigger trg1c;
 
131
drop trigger trg1d;
 
132
drop trigger trg1e;
 
133
drop trigger trg1f;
 
134
delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
 
135
 
 
136
Testcase 3.5.10.4:
 
137
------------------
 
138
create table tb_load (f1 int, f2 char(25),f3 int) engine=myisam;
 
139
Create trigger trg4 before insert on tb_load
 
140
for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
 
141
set @counter= 0;
 
142
select @counter as 'Rows Loaded Before';
 
143
Rows Loaded Before
 
144
0
 
145
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
 
146
select @counter as 'Rows Loaded After';
 
147
Rows Loaded After
 
148
10
 
149
Select * from tb_load limit 10;
 
150
f1      f2      f3
 
151
-5000   a`      1000
 
152
-4999   aaa     999
 
153
-4998   abaa    999
 
154
-4997   acaaa   999
 
155
-4996   adaaaa  999
 
156
-4995   aeaaaaa 999
 
157
-4994   afaaaaaa        998
 
158
-4993   agaaaaaaa       998
 
159
-4992   a^aaaaaaaa      998
 
160
-4991   a_aaaaaaaaa     998
 
161
drop trigger trg4;
 
162
drop table tb_load;
 
163
 
 
164
Testcase 3.5.10.5: (implemented in trig_frkey.test)
 
165
---------------------------------------------------
 
166
 
 
167
Testcase 3.5.10.6: (implemented in trig_frkey.test)
 
168
---------------------------------------------------
 
169
 
 
170
Testcase 3.5.10.extra:
 
171
----------------------
 
172
create table t1_sp (var136 tinyint, var151 decimal) engine=myisam;
 
173
create trigger trg before insert on t1_sp
 
174
for each row set @counter=@counter+1;
 
175
create procedure trig_sp()
 
176
begin
 
177
declare done int default 0;
 
178
declare var151 decimal;
 
179
declare var136 tinyint;
 
180
declare cur1 cursor for select f136, f151 from tb3;
 
181
declare continue handler for sqlstate '01000' set done = 1;
 
182
open cur1;
 
183
fetch cur1 into var136, var151;
 
184
wl_loop: WHILE NOT done DO
 
185
insert into t1_sp values (var136, var151);
 
186
fetch cur1 into var136, var151;
 
187
END WHILE wl_loop;
 
188
close cur1;
 
189
end//
 
190
set @counter=0;
 
191
select @counter;
 
192
@counter
 
193
0
 
194
call trig_sp();
 
195
ERROR 02000: No data - zero rows fetched, selected, or processed
 
196
select @counter;
 
197
@counter
 
198
11
 
199
select count(*) from tb3;
 
200
count(*)
 
201
11
 
202
select count(*) from t1_sp;
 
203
count(*)
 
204
11
 
205
drop procedure trig_sp;
 
206
drop trigger trg;
 
207
drop table t1_sp;
 
208
 
 
209
Testcase 3.5.11.1 (implemented in trig_perf.test)
 
210
-------------------------------------------------
 
211
 
 
212
Testcase y.y.y.2: Check for triggers starting triggers
 
213
------------------------------------------------------
 
214
use test;
 
215
drop table if exists t1;
 
216
drop table if exists t2_1;
 
217
drop table if exists t2_2;
 
218
drop table if exists t2_3;
 
219
drop table if exists t2_4;
 
220
drop table if exists t3;
 
221
create table t1 (f1 integer) engine=myisam;
 
222
create table t2_1 (f1 integer) engine=myisam;
 
223
create table t2_2 (f1 integer) engine=myisam;
 
224
create table t2_3 (f1 integer) engine=myisam;
 
225
create table t2_4 (f1 integer) engine=myisam;
 
226
create table t3 (f1 integer) engine=myisam;
 
227
insert into t1 values (1);
 
228
create trigger tr1 after insert on t1 for each row
 
229
BEGIN
 
230
insert into t2_1 (f1) values (new.f1+1);
 
231
insert into t2_2 (f1) values (new.f1+1);
 
232
insert into t2_3 (f1) values (new.f1+1);
 
233
insert into t2_4 (f1) values (new.f1+1);
 
234
END//
 
235
create trigger tr2_1 after insert on t2_1 for each row
 
236
insert into t3 (f1) values (new.f1+10);
 
237
create trigger tr2_2 after insert on t2_2 for each row
 
238
insert into t3 (f1) values (new.f1+100);
 
239
create trigger tr2_3 after insert on t2_3 for each row
 
240
insert into t3 (f1) values (new.f1+1000);
 
241
create trigger tr2_4 after insert on t2_4 for each row
 
242
insert into t3 (f1) values (new.f1+10000);
 
243
insert into t1 values (1);
 
244
select * from t3;
 
245
f1
 
246
12
 
247
102
 
248
1002
 
249
10002
 
250
drop trigger tr1;
 
251
drop trigger tr2_1;
 
252
drop trigger tr2_2;
 
253
drop trigger tr2_3;
 
254
drop trigger tr2_4;
 
255
drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
 
256
 
 
257
Testcase y.y.y.3: Circular trigger reference
 
258
--------------------------------------------
 
259
use test;
 
260
drop table if exists t1;
 
261
drop table if exists t2;
 
262
drop table if exists t3;
 
263
drop table if exists t4;
 
264
create table t1 (f1 integer) engine = myisam;
 
265
create table t2 (f2 integer) engine = myisam;
 
266
create table t3 (f3 integer) engine = myisam;
 
267
create table t4 (f4 integer) engine = myisam;
 
268
insert into t1 values (0);
 
269
create trigger tr1 after insert on t1
 
270
for each row insert into t2 (f2) values (new.f1+1);
 
271
create trigger tr2 after insert on t2
 
272
for each row insert into t3 (f3) values (new.f2+1);
 
273
create trigger tr3 after insert on t3
 
274
for each row insert into t4 (f4) values (new.f3+1);
 
275
create trigger tr4 after insert on t4
 
276
for each row insert into t1 (f1) values (new.f4+1);
 
277
insert into t1 values (1);
 
278
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
 
279
select * from t1;
 
280
f1
 
281
0
 
282
1
 
283
select * from t2;
 
284
f2
 
285
2
 
286
select * from t3;
 
287
f3
 
288
3
 
289
select * from t4;
 
290
f4
 
291
4
 
292
drop trigger tr1;
 
293
drop trigger tr2;
 
294
drop trigger tr3;
 
295
drop trigger tr4;
 
296
drop table t1;
 
297
drop table t2;
 
298
drop table t3;
 
299
drop table t4;
 
300
 
 
301
Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889)
 
302
----------------------------------------------------------------------
 
303
set @sql_mode='traditional';
 
304
create table t1_sp (
 
305
count integer,
 
306
var136 tinyint,
 
307
var151 decimal) engine=myisam;
 
308
create procedure trig_sp()
 
309
begin
 
310
declare done int default 0;
 
311
declare var151 decimal;
 
312
declare var136 tinyint;
 
313
declare cur1 cursor for select f136, f151 from tb3;
 
314
declare continue handler for sqlstate '01000' set done = 1;
 
315
set @counter= @counter+1;
 
316
open cur1;
 
317
fetch cur1 into var136, var151;
 
318
wl_loop: WHILE NOT done DO
 
319
insert into t1_sp values (@counter, var136, var151);
 
320
fetch cur1 into var136, var151;
 
321
END WHILE wl_loop;
 
322
close cur1;
 
323
end//
 
324
create trigger trg before insert on t1_sp
 
325
for each row call trig_sp();
 
326
set @counter=0;
 
327
select @counter;
 
328
@counter
 
329
0
 
330
call trig_sp();
 
331
ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine trig_sp
 
332
select @counter;
 
333
@counter
 
334
1
 
335
select count(*) from tb3;
 
336
count(*)
 
337
11
 
338
select count(*) from t1_sp;
 
339
count(*)
 
340
0
 
341
set @@max_sp_recursion_depth= 10;
 
342
set @counter=0;
 
343
select @counter;
 
344
@counter
 
345
0
 
346
call trig_sp();
 
347
ERROR HY000: Can't update table 't1_sp' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
 
348
select @counter;
 
349
@counter
 
350
2
 
351
select count(*) from tb3;
 
352
count(*)
 
353
11
 
354
select count(*) from t1_sp;
 
355
count(*)
 
356
0
 
357
drop procedure trig_sp;
 
358
drop trigger trg;
 
359
drop table t1_sp;
 
360
 
 
361
Testcase y.y.y.5: Roleback of nested trigger references
 
362
-------------------------------------------------------
 
363
set @@sql_mode='traditional';
 
364
use test;
 
365
drop table if exists t1;
 
366
drop table if exists t2;
 
367
drop table if exists t3;
 
368
drop table if exists t4;
 
369
create table t1 (f1 integer) engine = myisam;
 
370
create table t2 (f2 integer) engine = myisam;
 
371
create table t3 (f3 integer) engine = myisam;
 
372
create table t4 (f4 tinyint) engine = myisam;
 
373
show create table t1;
 
374
Table   Create Table
 
375
t1      CREATE TABLE `t1` (
 
376
  `f1` int(11) default NULL
 
377
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
378
insert into t1 values (1);
 
379
create trigger tr1 after insert on t1
 
380
for each row insert into t2 (f2) values (new.f1+1);
 
381
create trigger tr2 after insert on t2
 
382
for each row insert into t3 (f3) values (new.f2+1);
 
383
create trigger tr3 after insert on t3
 
384
for each row insert into t4 (f4) values (new.f3+1000);
 
385
set autocommit=0;
 
386
start transaction;
 
387
insert into t1 values (1);
 
388
ERROR 22003: Out of range value adjusted for column 'f4' at row 1
 
389
commit;
 
390
select * from t1;
 
391
f1
 
392
1
 
393
1
 
394
select * from t2;
 
395
f2
 
396
2
 
397
select * from t3;
 
398
f3
 
399
3
 
400
drop trigger tr1;
 
401
drop trigger tr2;
 
402
drop trigger tr3;
 
403
drop table t1;
 
404
drop table t2;
 
405
drop table t3;
 
406
drop table t4;