~stewart/drizzle/embedded-innodb-create-select-transaction-arrgh

« back to all changes in this revision

Viewing changes to mysql-test/suite/rpl/r/rpl_row_sp002_innodb.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 PROCEDURE IF EXISTS test.p1;
 
8
DROP PROCEDURE IF EXISTS test.p2;
 
9
DROP PROCEDURE IF EXISTS test.p3;
 
10
DROP TABLE IF EXISTS test.t3;
 
11
DROP TABLE IF EXISTS test.t1;
 
12
DROP TABLE IF EXISTS test.t2;
 
13
CREATE TABLE test.t1 (a INT AUTO_INCREMENT KEY, t CHAR(6)) ENGINE=INNODB;
 
14
CREATE TABLE test.t2 (a INT AUTO_INCREMENT KEY, f INT, FOREIGN KEY(a) REFERENCES test.t1(a) ON DELETE CASCADE) ENGINE=INNODB;
 
15
create procedure test.p1(IN i CHAR(6))
 
16
begin
 
17
INSERT INTO test.t1 (t) VALUES (i);
 
18
INSERT INTO test.t2 VALUES (NULL,LAST_INSERT_ID());
 
19
end|
 
20
create procedure test.p2(IN i INT)
 
21
begin
 
22
DELETE FROM test.t1 where a < i;
 
23
end|
 
24
 
 
25
< -- test 1 call p1 -- >
 
26
------------------------
 
27
SET FOREIGN_KEY_CHECKS=1;
 
28
call test.p1('texas');
 
29
call test.p1('Live');
 
30
call test.p1('next');
 
31
call test.p1('to');
 
32
call test.p1('OK');
 
33
call test.p1('MySQL');
 
34
 
 
35
< -- test 1 select master after p1 -- >
 
36
---------------------------------------
 
37
SELECT * FROM test.t1;
 
38
a       t
 
39
1       texas
 
40
2       Live
 
41
3       next
 
42
4       to
 
43
5       OK
 
44
6       MySQL
 
45
SELECT * FROM test.t2;
 
46
a       f
 
47
1       1
 
48
2       2
 
49
3       3
 
50
4       4
 
51
5       5
 
52
6       6
 
53
 
 
54
< -- test 1 select slave after p1 -- >
 
55
--------------------------------------
 
56
SELECT * FROM test.t1;
 
57
a       t
 
58
1       texas
 
59
2       Live
 
60
3       next
 
61
4       to
 
62
5       OK
 
63
6       MySQL
 
64
SELECT * FROM test.t2;
 
65
a       f
 
66
1       1
 
67
2       2
 
68
3       3
 
69
4       4
 
70
5       5
 
71
6       6
 
72
 
 
73
< -- test 1 call p2 & select master -- >
 
74
----------------------------------------
 
75
call test.p2(4);
 
76
SELECT * FROM test.t1;
 
77
a       t
 
78
4       to
 
79
5       OK
 
80
6       MySQL
 
81
SELECT * FROM test.t2;
 
82
a       f
 
83
4       4
 
84
5       5
 
85
6       6
 
86
 
 
87
< -- test 1 select slave after p2 -- >
 
88
--------------------------------------
 
89
SELECT * FROM test.t1;
 
90
a       t
 
91
4       to
 
92
5       OK
 
93
6       MySQL
 
94
SELECT * FROM test.t2;
 
95
a       f
 
96
4       4
 
97
5       5
 
98
6       6
 
99
 
 
100
< -- End test 1 Begin test 2 -- >
 
101
---------------------------------
 
102
SET FOREIGN_KEY_CHECKS=0;
 
103
DROP PROCEDURE IF EXISTS test.p1;
 
104
DROP PROCEDURE IF EXISTS test.p2;
 
105
DROP TABLE IF EXISTS test.t1;
 
106
DROP TABLE IF EXISTS test.t2;
 
107
CREATE TABLE test.t1 (a INT, t CHAR(6), PRIMARY KEY(a)) ENGINE=INNODB;
 
108
CREATE TABLE test.t2 (a INT, f INT, FOREIGN KEY(a) REFERENCES test.t1(a) ON UPDATE CASCADE, PRIMARY KEY(a)) ENGINE=INNODB;
 
109
CREATE PROCEDURE  test.p1(IN nm INT, IN ch CHAR(6))
 
110
BEGIN
 
111
INSERT INTO test.t1 (a,t) VALUES (nm, ch);
 
112
INSERT INTO test.t2 VALUES (nm, LAST_INSERT_ID());
 
113
END|
 
114
CREATE PROCEDURE test.p2(IN i INT)
 
115
BEGIN
 
116
UPDATE test.t1 SET a = i*10 WHERE a = i;
 
117
END|
 
118
SET FOREIGN_KEY_CHECKS=1;
 
119
CALL test.p1(1,'texas');
 
120
CALL test.p1(2,'Live');
 
121
CALL test.p1(3,'next');
 
122
CALL test.p1(4,'to');
 
123
CALL test.p1(5,'OK');
 
124
CALL test.p1(6,'MySQL');
 
125
 
 
126
< -- test 2 select Master after p1 -- >
 
127
---------------------------------------
 
128
SELECT * FROM test.t1;
 
129
a       t
 
130
1       texas
 
131
2       Live
 
132
3       next
 
133
4       to
 
134
5       OK
 
135
6       MySQL
 
136
SELECT * FROM test.t2;
 
137
a       f
 
138
1       6
 
139
2       6
 
140
3       6
 
141
4       6
 
142
5       6
 
143
6       6
 
144
 
 
145
< -- test 2 select Slave after p1 -- >
 
146
--------------------------------------
 
147
SELECT * FROM test.t1;
 
148
a       t
 
149
1       texas
 
150
2       Live
 
151
3       next
 
152
4       to
 
153
5       OK
 
154
6       MySQL
 
155
SELECT * FROM test.t2;
 
156
a       f
 
157
1       6
 
158
2       6
 
159
3       6
 
160
4       6
 
161
5       6
 
162
6       6
 
163
 
 
164
< -- test 2 call p2 & select Master -- >
 
165
----------------------------------------
 
166
CALL test.p2(2);
 
167
CALL test.p2(4);
 
168
CALL test.p2(6);
 
169
SELECT * FROM test.t1;
 
170
a       t
 
171
1       texas
 
172
3       next
 
173
5       OK
 
174
20      Live
 
175
40      to
 
176
60      MySQL
 
177
SELECT * FROM test.t2;
 
178
a       f
 
179
1       6
 
180
3       6
 
181
5       6
 
182
20      6
 
183
40      6
 
184
60      6
 
185
 
 
186
< -- test 1 select Slave after p2 -- >
 
187
--------------------------------------
 
188
SELECT * FROM test.t1;
 
189
a       t
 
190
1       texas
 
191
3       next
 
192
5       OK
 
193
20      Live
 
194
40      to
 
195
60      MySQL
 
196
SELECT * FROM test.t2;
 
197
a       f
 
198
1       6
 
199
3       6
 
200
5       6
 
201
20      6
 
202
40      6
 
203
60      6
 
204
 
 
205
< -- End test 2 Begin test 3 -- >
 
206
---------------------------------
 
207
CREATE TABLE test.t3 (a INT AUTO_INCREMENT KEY, t CHAR(6))ENGINE=INNODB;
 
208
CREATE PROCEDURE test.p3(IN n INT)
 
209
begin
 
210
CASE n
 
211
WHEN 2 THEN
 
212
DELETE from test.t3; 
 
213
ELSE
 
214
INSERT INTO test.t3 VALUES (NULL,'NONE');
 
215
END CASE;
 
216
end|
 
217
SET AUTOCOMMIT=0;
 
218
START TRANSACTION;
 
219
ROLLBACK;
 
220
select * from test.t3;
 
221
a       t
 
222
select * from test.t3;
 
223
a       t
 
224
START TRANSACTION;
 
225
COMMIT;
 
226
select * from test.t3;
 
227
a       t
 
228
98      NONE
 
229
select * from test.t3;
 
230
a       t
 
231
98      NONE
 
232
SET AUTOCOMMIT=1;
 
233
SET FOREIGN_KEY_CHECKS=0;
 
234
DROP PROCEDURE IF EXISTS test.p3;
 
235
DROP PROCEDURE IF EXISTS test.p1;
 
236
DROP PROCEDURE IF EXISTS test.p2;
 
237
DROP TABLE IF EXISTS test.t1;
 
238
DROP TABLE IF EXISTS test.t2;
 
239
DROP TABLE IF EXISTS test.t3;