~vkolesnikov/pbxt/pbxt-07-diskfull

« back to all changes in this revision

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

  • Committer: paul-mccullagh
  • Date: 2006-10-23 09:14:04 UTC
  • Revision ID: paul-mccullagh-918861e03d351978a9541168a96e58cc826734ee
Initial import

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