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

« back to all changes in this revision

Viewing changes to mysql-test/suite/rpl/r/rpl_found_rows.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
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
==== 0. Setting it all up ====
 
8
SET BINLOG_FORMAT=STATEMENT;
 
9
**** On Master ****
 
10
CREATE TABLE t1 (a INT);
 
11
CREATE TABLE logtbl (sect INT, test INT, count INT);
 
12
INSERT INTO t1 VALUES (1),(2),(3);
 
13
INSERT INTO t1 SELECT 2*a+3 FROM t1;
 
14
INSERT INTO t1 SELECT 2*a+3 FROM t1;
 
15
INSERT INTO t1 SELECT 2*a+3 FROM t1;
 
16
INSERT INTO t1 SELECT 2*a+3 FROM t1;
 
17
INSERT INTO t1 SELECT 2*a+3 FROM t1;
 
18
INSERT INTO t1 SELECT 2*a+3 FROM t1;
 
19
#### 1. Using statement mode ####
 
20
==== 1.1. Simple test ====
 
21
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
22
a
 
23
7
 
24
SELECT FOUND_ROWS() INTO @a;
 
25
INSERT INTO logtbl VALUES(1,1,@a);
 
26
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a < 5 ORDER BY a LIMIT 1;
 
27
a
 
28
1
 
29
SELECT FOUND_ROWS() INTO @a;
 
30
INSERT INTO logtbl VALUES(1,2,@a);
 
31
SELECT * FROM logtbl WHERE sect = 1 ORDER BY sect,test;
 
32
sect    test    count
 
33
1       1       183
 
34
1       2       3
 
35
**** On Slave ****
 
36
SELECT * FROM logtbl WHERE sect = 1 ORDER BY sect,test;
 
37
sect    test    count
 
38
1       1       183
 
39
1       2       3
 
40
==== 1.2. Stored procedure ====
 
41
**** On Master ****
 
42
CREATE PROCEDURE calc_and_log(sect INT, test INT) BEGIN
 
43
DECLARE cnt INT;
 
44
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a < 5 ORDER BY a LIMIT 1;
 
45
SELECT FOUND_ROWS() INTO cnt;
 
46
INSERT INTO logtbl VALUES(sect,test,cnt);
 
47
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
48
SELECT FOUND_ROWS() INTO cnt;
 
49
INSERT INTO logtbl VALUES(sect,test+1,cnt);
 
50
END $$
 
51
CALL calc_and_log(2,1);
 
52
a
 
53
1
 
54
a
 
55
7
 
56
CREATE PROCEDURE just_log(sect INT, test INT, found_rows INT) BEGIN
 
57
INSERT INTO logtbl VALUES (sect,test,found_rows);
 
58
END $$
 
59
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
60
a
 
61
7
 
62
SELECT FOUND_ROWS() INTO @found_rows;
 
63
CALL just_log(2,3,@found_rows);
 
64
SELECT * FROM logtbl WHERE sect = 2 ORDER BY sect,test;
 
65
sect    test    count
 
66
2       1       3
 
67
2       2       183
 
68
2       3       183
 
69
**** On Slave ****
 
70
SELECT * FROM logtbl WHERE sect = 2 ORDER BY sect,test;
 
71
sect    test    count
 
72
2       1       3
 
73
2       2       183
 
74
2       3       183
 
75
==== 1.3. Stored functions ====
 
76
**** On Master ****
 
77
CREATE FUNCTION log_rows(sect INT, test INT, found_rows INT)
 
78
RETURNS INT
 
79
BEGIN
 
80
INSERT INTO logtbl VALUES(sect,test,found_rows);
 
81
RETURN found_rows;
 
82
END $$
 
83
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
84
a
 
85
7
 
86
SELECT FOUND_ROWS() INTO @found_rows;
 
87
SELECT log_rows(3,1,@found_rows), log_rows(3,2,@found_rows);
 
88
log_rows(3,1,@found_rows)       log_rows(3,2,@found_rows)
 
89
183     183
 
90
SELECT * FROM logtbl WHERE sect = 3 ORDER BY sect,test;
 
91
sect    test    count
 
92
3       1       183
 
93
3       2       183
 
94
**** On Slave ****
 
95
SELECT * FROM logtbl WHERE sect = 3 ORDER BY sect,test;
 
96
sect    test    count
 
97
3       1       183
 
98
3       2       183
 
99
==== 1.9. Cleanup ====
 
100
**** On Master ****
 
101
DELETE FROM logtbl;
 
102
DROP PROCEDURE just_log;
 
103
DROP PROCEDURE calc_and_log;
 
104
DROP FUNCTION log_rows;
 
105
**** Resetting master and slave ****
 
106
include/stop_slave.inc
 
107
RESET SLAVE;
 
108
RESET MASTER;
 
109
include/start_slave.inc
 
110
#### 2. Using mixed mode ####
 
111
==== 2.1. Checking a procedure ====
 
112
**** On Master ****
 
113
SET BINLOG_FORMAT=MIXED;
 
114
CREATE PROCEDURE just_log(sect INT, test INT) BEGIN
 
115
INSERT INTO logtbl VALUES (sect,test,FOUND_ROWS());
 
116
END $$
 
117
**** On Master 1 ****
 
118
SET BINLOG_FORMAT=MIXED;
 
119
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
120
a
 
121
7
 
122
CALL just_log(1,1);
 
123
**** On Master ****
 
124
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
125
a
 
126
7
 
127
CALL just_log(1,2);
 
128
**** On Master 1 ****
 
129
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a < 5 ORDER BY a LIMIT 1;
 
130
a
 
131
1
 
132
CALL just_log(1,3);
 
133
**** On Master ****
 
134
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
135
a
 
136
7
 
137
CALL just_log(1,4);
 
138
SELECT * FROM logtbl WHERE sect = 1 ORDER BY sect,test;
 
139
sect    test    count
 
140
1       1       183
 
141
1       2       183
 
142
1       3       3
 
143
1       4       183
 
144
**** On Slave ****
 
145
SELECT * FROM logtbl WHERE sect = 1 ORDER BY sect,test;
 
146
sect    test    count
 
147
1       1       183
 
148
1       2       183
 
149
1       3       3
 
150
1       4       183
 
151
==== 2.1. Checking a stored function ====
 
152
**** On Master ****
 
153
CREATE FUNCTION log_rows(sect INT, test INT)
 
154
RETURNS INT
 
155
BEGIN
 
156
DECLARE found_rows INT;
 
157
SELECT FOUND_ROWS() INTO found_rows;
 
158
INSERT INTO logtbl VALUES(sect,test,found_rows);
 
159
RETURN found_rows;
 
160
END $$
 
161
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a < 5 ORDER BY a LIMIT 1;
 
162
a
 
163
1
 
164
SELECT log_rows(2,1), log_rows(2,2);
 
165
log_rows(2,1)   log_rows(2,2)
 
166
3       3
 
167
CREATE TABLE t2 (a INT, b INT);
 
168
CREATE TRIGGER t2_tr BEFORE INSERT ON t2 FOR EACH ROW
 
169
BEGIN
 
170
INSERT INTO logtbl VALUES (NEW.a, NEW.b, FOUND_ROWS());
 
171
END $$
 
172
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a < 5 ORDER BY a LIMIT 1;
 
173
a
 
174
1
 
175
INSERT INTO t2 VALUES (2,3), (2,4);
 
176
DROP TRIGGER t2_tr;
 
177
CREATE TRIGGER t2_tr BEFORE INSERT ON t2 FOR EACH ROW
 
178
BEGIN
 
179
DECLARE dummy INT;
 
180
SELECT log_rows(NEW.a, NEW.b) INTO dummy;
 
181
END $$
 
182
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
183
a
 
184
7
 
185
INSERT INTO t2 VALUES (2,5), (2,6);
 
186
DROP TRIGGER t2_tr;
 
187
CREATE PROCEDURE log_me_inner(sect INT, test INT)
 
188
BEGIN
 
189
DECLARE dummy INT;
 
190
SELECT log_rows(sect, test) INTO dummy;
 
191
SELECT log_rows(sect, test+1) INTO dummy;
 
192
END $$
 
193
CREATE PROCEDURE log_me(sect INT, test INT)
 
194
BEGIN
 
195
CALL log_me_inner(sect,test);
 
196
END $$
 
197
CREATE TRIGGER t2_tr BEFORE INSERT ON t2 FOR EACH ROW
 
198
BEGIN
 
199
CALL log_me(NEW.a, NEW.b);
 
200
END $$
 
201
SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1;
 
202
a
 
203
7
 
204
INSERT INTO t2 VALUES (2,5), (2,6);
 
205
SELECT * FROM logtbl WHERE sect = 2 ORDER BY sect,test;
 
206
sect    test    count
 
207
2       1       3
 
208
2       2       3
 
209
2       3       3
 
210
2       4       3
 
211
2       5       183
 
212
2       5       183
 
213
2       6       183
 
214
2       6       0
 
215
2       6       183
 
216
2       7       0
 
217
SELECT * FROM logtbl WHERE sect = 2 ORDER BY sect,test;
 
218
sect    test    count
 
219
2       1       3
 
220
2       2       3
 
221
2       3       3
 
222
2       4       3
 
223
2       5       183
 
224
2       5       183
 
225
2       6       183
 
226
2       6       0
 
227
2       6       183
 
228
2       7       0
 
229
DROP TABLE t1, t2, logtbl;
 
230
DROP PROCEDURE just_log;
 
231
DROP PROCEDURE log_me;
 
232
DROP PROCEDURE log_me_inner;
 
233
DROP FUNCTION log_rows;