~ubuntu-branches/ubuntu/lucid/mysql-dfsg-5.1/lucid-security

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;

<Begin test section 1 (non deterministic SP)>
---------------------------------------------
create table test.t1 (n MEDIUMINT NOT NULL AUTO_INCREMENT, f FLOAT, d DATETIME, PRIMARY KEY(n));
create procedure test.p1()
begin
INSERT INTO test.t1 (f,d) VALUES (RAND(),NOW());
end//

<End test section 1 (non deterministic SP)>
-------------------------------------------
CREATE TABLE test.t2 (a INT NOT NULL AUTO_INCREMENT, t CHAR(4), PRIMARY KEY(a));
CREATE PROCEDURE test.p2(n int)
begin
CASE n
WHEN 1 THEN
UPDATE test.t2 set t ='Tex';
WHEN 2 THEN
UPDATE test.t2 set t ='SQL';
ELSE
UPDATE test.t2 set t ='NONE';
END CASE;
end//
INSERT INTO test.t2 VALUES(NULL,'NEW'),(NULL,'NEW'),(NULL,'NEW'),(NULL,'NEW');
SELECT * FROM t2 ORDER BY a;
a	t
1	NEW
2	NEW
3	NEW
4	NEW
SELECT * FROM t2 ORDER BY a;
a	t
1	NEW
2	NEW
3	NEW
4	NEW
call test.p2(1);
SELECT * FROM t2 ORDER BY a;
a	t
1	Tex
2	Tex
3	Tex
4	Tex
SELECT * FROM t2 ORDER BY a;
a	t
1	Tex
2	Tex
3	Tex
4	Tex
call test.p2(2);
SELECT * FROM t2 ORDER BY a;
a	t
1	SQL
2	SQL
3	SQL
4	SQL
SELECT * FROM t2 ORDER BY a;
a	t
1	SQL
2	SQL
3	SQL
4	SQL
call test.p2(3);
SELECT * FROM t2 ORDER BY a;
a	t
1	NONE
2	NONE
3	NONE
4	NONE
SELECT * FROM t2 ORDER BY a;
a	t
1	NONE
2	NONE
3	NONE
4	NONE
DROP PROCEDURE test.p1;
DROP PROCEDURE test.p2;
DROP TABLE test.t1;
DROP TABLE test.t2;