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

« back to all changes in this revision

Viewing changes to mysql-test/extra/rpl_tests/rpl_row_blob.test

  • 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
#################################################
 
2
# Author: JBM
 
3
# Date: 2006-01-06
 
4
# Purpose: Test test that BLOBs are replicated 
 
5
#           correctly.
 
6
################################################
 
7
 
 
8
# Pre test clean up section
 
9
connection master;
 
10
--disable_warnings
 
11
DROP TABLE IF EXISTS test.t1;
 
12
DROP TABLE IF EXISTS test.t2;
 
13
--enable_warnings
 
14
 
 
15
# Start test section
 
16
--echo *****  Table Create Section ****
 
17
--echo
 
18
--disable_warnings
 
19
--replace_result $engine_type #
 
20
eval CREATE TABLE test.t1 (c1 int not null auto_increment, 
 
21
data LONGBLOB, PRIMARY KEY(c1))ENGINE=$engine_type;
 
22
--enable_warnings
 
23
--echo
 
24
--echo **** Data Insert Section test.t1 *****
 
25
--echo
 
26
INSERT INTO test.t1 VALUES (NULL, NULL);
 
27
INSERT INTO test.t1 VALUES (NULL, repeat('a',1*1024));
 
28
INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024));
 
29
--echo
 
30
 
 
31
--echo **** Data Insert Validation Master Section test.t1 ****
 
32
--echo
 
33
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
 
34
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
 
35
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3;
 
36
save_master_pos;
 
37
connection slave;
 
38
sync_with_master; 
 
39
sleep 5;
 
40
--echo
 
41
--echo **** Data Insert Validation Slave Section test.t1 ****
 
42
--echo
 
43
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
 
44
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
 
45
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3;
 
46
connection master;
 
47
--echo
 
48
 
 
49
--echo **** Data Update Section test.t1 ****
 
50
--echo
 
51
UPDATE test.t1 set data=repeat('a',18*1024) where c1 = 1;
 
52
UPDATE t1 set data=repeat('c',17*1024) where c1 = 2;
 
53
--echo
 
54
 
 
55
--echo **** Data Update Validation Master Section test.t1 ****
 
56
--echo
 
57
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
 
58
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
 
59
# Sleep is needed for NDB to allow time for
 
60
# Injector thread to populate the bin log.
 
61
save_master_pos;
 
62
connection slave;
 
63
sync_with_master; 
 
64
sleep 5;
 
65
--echo
 
66
--echo **** Data Update Validation Slave Section test.t1 ****
 
67
--echo
 
68
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
 
69
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
 
70
connection master;
 
71
--echo
 
72
--echo **** End Test Section test.t1 ****
 
73
--echo
 
74
 
 
75
--echo **** Create Table test.t2 ****
 
76
--echo
 
77
--disable_warnings
 
78
--replace_result $engine_type #
 
79
eval CREATE TABLE test.t2 (
 
80
  c1 INT NOT NULL PRIMARY KEY,
 
81
  c2 TEXT,
 
82
  c3 INT,
 
83
  c4 LONGBLOB,
 
84
  KEY(c3))ENGINE=$engine_type;
 
85
--enable_warnings
 
86
--echo
 
87
 
 
88
--echo *** Setup Values For test.t2 ***
 
89
# x0 size 256 (current inline size)
 
90
set @x0 = '01234567012345670123456701234567';
 
91
set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0);
 
92
 
 
93
# b1 length 2000+256 (blob part aligned)
 
94
set @b1 = 'b1';
 
95
set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 
96
set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 
97
set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 
98
set @b1 = concat(@b1,@x0);
 
99
# d1 length 3000
 
100
set @d1 = 'dd1';
 
101
set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 
102
set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 
103
set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 
104
 
 
105
# b2 length 20000
 
106
set @b2 = 'b2';
 
107
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 
108
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 
109
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 
110
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 
111
 
 
112
# d2 length 30000
 
113
set @d2 = 'dd2';
 
114
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 
115
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 
116
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 
117
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 
118
--echo
 
119
 
 
120
--echo **** Data Insert Section test.t2 *****
 
121
--echo
 
122
INSERT INTO test.t2 VALUES(1,@b1,111,@d1);
 
123
INSERT INTO test.t2 VALUES(2,@b2,222,@d2);
 
124
--echo
 
125
 
 
126
--echo **** Data Insert Validation Master Section test.t2 ****
 
127
--echo
 
128
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 
129
FROM test.t2 WHERE c1=1;
 
130
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 
131
FROM test.t2 WHERE c1=2;
 
132
save_master_pos;
 
133
connection slave;
 
134
sync_with_master; 
 
135
sleep 5;
 
136
--echo
 
137
--echo **** Data Insert Validation Slave Section test.t2 ****
 
138
--echo
 
139
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 
140
FROM test.t2 WHERE c1=1;
 
141
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 
142
FROM test.t2 WHERE c1=2;
 
143
connection master;
 
144
--echo
 
145
 
 
146
--echo **** Data Update Section test.t2 ****
 
147
--echo
 
148
UPDATE test.t2 SET c2=@b2, c4=@d2 WHERE c1=1;
 
149
UPDATE test.t2 SET c2=@b1, c4=@d1 WHERE c1=2;
 
150
--echo
 
151
 
 
152
--echo **** Data Update Validation Master Section test.t2 ****
 
153
--echo
 
154
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 
155
FROM test.t2 WHERE c1=1;
 
156
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 
157
FROM test.t2 WHERE c1=2;
 
158
# Sleep is needed for NDB to allow time for
 
159
# Injector thread to populate the bin log.
 
160
save_master_pos;
 
161
connection slave;
 
162
sync_with_master; 
 
163
sleep 5;
 
164
--echo
 
165
--echo **** Data Update Validation Slave Section test.t2 ****
 
166
--echo
 
167
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 
168
FROM test.t2 WHERE c1=1;
 
169
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 
170
FROM test.t2 WHERE c1=2;
 
171
connection master;
 
172
--echo
 
173
 
 
174
# Post test clean up section
 
175
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_row_blob_master.sql
 
176
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_row_blob_slave.sql
 
177
 
 
178
diff_files $MYSQLTEST_VARDIR/tmp/rpl_row_blob_master.sql $MYSQLTEST_VARDIR/tmp/rpl_row_blob_slave.sql;
 
179
 
 
180
DROP TABLE IF EXISTS test.t1;
 
181
DROP TABLE IF EXISTS test.t2;
 
182
# ensure cleanup on slave as well:
 
183
# ndb blob tables consist of several tables
 
184
# if cluster is shutdown while not all tables are
 
185
# properly dropped, the table becomes inconsistent
 
186
# and wrecks later test cases
 
187
--sync_slave_with_master