~eday/drizzle/eday-dev

« back to all changes in this revision

Viewing changes to tests/extra/rpl_tests/rpl_row_blob.test

  • Committer: Eric Day
  • Date: 2010-01-07 20:02:38 UTC
  • mfrom: (971.3.291 staging)
  • Revision ID: eday@oddments.org-20100107200238-uqw8v6kv9pl7nny5
Merged trunk.

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 $DRIZZLE_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_row_blob_master.sql
176
 
--exec $DRIZZLE_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