File: rpl_checksum_cache.result

package info (click to toggle)
mariadb 1%3A11.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 765,428 kB
  • sloc: ansic: 2,382,827; cpp: 1,803,532; asm: 378,315; perl: 63,176; sh: 46,496; pascal: 40,776; java: 39,363; yacc: 20,428; python: 19,506; sql: 17,864; xml: 12,463; ruby: 8,544; makefile: 6,059; cs: 5,855; ada: 1,700; lex: 1,193; javascript: 1,039; objc: 80; tcl: 73; awk: 46; php: 22
file content (177 lines) | stat: -rw-r--r-- 5,261 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
include/master-slave.inc
[connection master]
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. .*Statement: insert into t2 set data=repeat.*'a', @act_size.*");
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. .*Statement: insert into t1 values.* NAME_CONST.*'n',.*, @data .*");
connection master;
set @save_binlog_cache_size = @@global.binlog_cache_size;
set @save_binlog_checksum = @@global.binlog_checksum;
set @save_master_verify_checksum = @@global.master_verify_checksum;
set @@global.binlog_cache_size = 4096;
set @@global.binlog_checksum = CRC32;
set @@global.master_verify_checksum = 1;
connection slave;
include/stop_slave.inc
include/start_slave.inc
connection master;
flush global status;
show status like "binlog_cache_use";
Variable_name	Value
Binlog_cache_use	0
show status like "binlog_cache_disk_use";
Variable_name	Value
Binlog_cache_disk_use	0
drop table if exists t1;
create table t1 (a int PRIMARY KEY, b CHAR(32)) engine=innodb;
create procedure test.p_init (n int, size int) 
begin
while n > 0 do
select round(RAND() * size) into @act_size;
set @data = repeat('a', @act_size);
insert into t1 values(n, @data );
set n= n-1;
end while;
end|
begin;
call test.p_init(4000, 32);
commit;
show status like "binlog_cache_use";
Variable_name	Value
Binlog_cache_use	1
*** binlog_cache_disk_use must be non-zero ***
show status like "binlog_cache_disk_use";
Variable_name	Value
Binlog_cache_disk_use	1
connection slave;
include/diff_tables.inc [master:test.t1, slave:test.t1]
connection master;
begin;
delete from t1;
commit;
connection slave;
connection master;
flush global status;
create table t2(a int auto_increment primary key, data VARCHAR(12288)) ENGINE=Innodb;
show status like "binlog_cache_use";
Variable_name	Value
Binlog_cache_use	1
*** binlog_cache_disk_use must be non-zero ***
show status like "binlog_cache_disk_use";
Variable_name	Value
Binlog_cache_disk_use	1
connection slave;
include/diff_tables.inc [master:test.t2, slave:test.t2]
connection master;
begin;
delete from t2;
commit;
connection slave;
connection master;
flush global status;
create table t3(a int auto_increment primary key, data VARCHAR(8192)) engine=innodb;
show status like "binlog_cache_use";
Variable_name	Value
Binlog_cache_use	1
*** binlog_cache_disk_use must be non-zero ***
show status like "binlog_cache_disk_use";
Variable_name	Value
Binlog_cache_disk_use	1
connection slave;
include/diff_tables.inc [master:test.t3, slave:test.t3]
connection master;
begin;
delete from t3;
commit;
connection slave;
connection master;
flush global status;
create procedure test.p1 (n int) 
begin
while n > 0 do
case (select (round(rand()*100) % 3) + 1)
when 1 then
select round(RAND() * 32) into @act_size;
set @data = repeat('a', @act_size);
insert into t1 values(n, @data);
when 2 then
begin
select round(8192 + RAND() * 4096) into @act_size;
insert into t2 set data=repeat('a', @act_size);
end;
when 3 then
begin
select round(3686.4000 + RAND() * 819.2000) into @act_size;
insert into t3 set data= repeat('a', @act_size);
end;
end case;
set n= n-1;
end while;
end|
set autocommit= 0;
begin;
call test.p1(1000);
commit;
show status like "binlog_cache_use";
Variable_name	Value
Binlog_cache_use	1
*** binlog_cache_disk_use must be non-zero ***
show status like "binlog_cache_disk_use";
Variable_name	Value
Binlog_cache_disk_use	1
connection slave;
include/diff_tables.inc [master:test.t1, slave:test.t1]
include/diff_tables.inc [master:test.t2, slave:test.t2]
include/diff_tables.inc [master:test.t3, slave:test.t3]
*** Test switching checksum algorithm while ongoing transactions have pre-computed checksum in their binlog cache ***
connection master;
CREATE TABLE t4 (a INT, b INT, c VARCHAR(1024), PRIMARY KEY (a,b)) ENGINE=InnoDB;
BEGIN;
INSERT INTO t4 VALUES (1, 1, "small, pre-computed checksums");
connection server_1;
BEGIN;
INSERT INTO t4 VALUES (2, 1, "big, pre-computed checksums");
set @@global.binlog_checksum = NONE;
connection master;
INSERT INTO t4 VALUES (1, 2, "done");
COMMIT;
connection server_1;
INSERT INTO t4 VALUES (2, 22, "done");
COMMIT;
connection master;
BEGIN;
INSERT INTO t4 VALUES (3, 1, "small, no pre-computed checksums");
connection server_1;
BEGIN;
INSERT INTO t4 VALUES (4, 1, "big, no pre-computed checksums");
set @@global.binlog_checksum = CRC32;
connection master;
INSERT INTO t4 VALUES (3, 2, "done");
COMMIT;
connection server_1;
INSERT INTO t4 VALUES (4, 22, "done");
COMMIT;
connection slave;
*** Test the --binlog-legacy-event-pos option.
connection master;
FLUSH BINARY LOGS;
BEGIN;
INSERT INTO t4 VALUES (5, 1, "Zero end_log_pos");
COMMIT;
set @@global.binlog_legacy_event_pos= 1;
BEGIN;
INSERT INTO t4 VALUES (6, 1, "Non-zero end_log_pos");
COMMIT;
set @@global.binlog_legacy_event_pos= 0;
connection slave;
connection master;
begin;
delete from t1;
delete from t2;
delete from t3;
commit;
drop table t1, t2, t3, t4;
set @@global.binlog_cache_size = @save_binlog_cache_size;
set @@global.binlog_checksum = @save_binlog_checksum;
set @@global.master_verify_checksum = @save_master_verify_checksum;
drop procedure test.p_init;
drop procedure test.p1;
include/rpl_end.inc