1include/master-slave.inc
2[connection master]
3connection master;
4CREATE TABLE t1 (a int, b varchar(100), fulltext(b)) engine=MyISAM;
5INSERT INTO t1 VALUES (1,"a"), (2,"b");
6UPDATE t1 SET b='A' WHERE a=1;
7DELETE FROM t1 WHERE a=2;
8connection slave;
9connection slave;
10SELECT * FROM t1 ORDER BY a;
11a	b
121	A
13connection master;
14DROP TABLE t1;
15connection master;
16CREATE TABLE t1 (d INT PRIMARY KEY) ENGINE=myisam;
17INSERT INTO t1 VALUES (0);
18INSERT INTO t1 SELECT d+1 FROM t1;
19INSERT INTO t1 SELECT d+2 FROM t1;
20INSERT INTO t1 SELECT d+4 FROM t1;
21INSERT INTO t1 SELECT d+8 FROM t1;
22INSERT INTO t1 SELECT d+16 FROM t1;
23INSERT INTO t1 SELECT d+32 FROM t1;
24INSERT INTO t1 SELECT d+64 FROM t1;
25INSERT INTO t1 SELECT d+128 FROM t1;
26INSERT INTO t1 SELECT d+256 FROM t1;
27INSERT INTO t1 SELECT d+512 FROM t1;
28CREATE TABLE t2 (a INT, b INT, c INT, d INT,
29KEY wrong_key(a),
30KEY expected_key(b,c),
31KEY wrong_key2(c)) ENGINE=myisam;
32INSERT INTO t2 SELECT d DIV 10, d MOD 41, d MOD 37, d FROM t1;
33connection slave;
34connection slave;
35ANALYZE TABLE t2;
36Table	Op	Msg_type	Msg_text
37test.t2	analyze	status	OK
38# Slave will crash if using the wrong or no index
39SET GLOBAL debug_dbug="+d,slave_crash_if_wrong_index,slave_crash_if_table_scan";
40connection master;
41UPDATE t2 SET d=10042 WHERE d=42;
42DELETE FROM t2 WHERE d=53;
43connection slave;
44connection slave;
45SET GLOBAL debug_dbug="";
46SELECT * FROM t2 WHERE d IN (10042,53);
47a	b	c	d
484	1	5	10042
49connection master;
50DROP TABLE t2;
51CREATE TABLE t2 (a INT, b INT, c INT, d INT NOT NULL, e INT,
52UNIQUE wrong_key3(a,e),
53KEY wrong_key4(b,c),
54UNIQUE expected_key(d)) ENGINE=myisam;
55INSERT INTO t2 SELECT d DIV 10, d MOD 41, d MOD 37, d, NULL FROM t1;
56connection slave;
57connection slave;
58ANALYZE TABLE t2;
59Table	Op	Msg_type	Msg_text
60test.t2	analyze	status	OK
61# Slave will crash if using the wrong or no index
62SET GLOBAL debug_dbug="+d,slave_crash_if_wrong_index,slave_crash_if_table_scan";
63connection master;
64UPDATE t2 SET d=10042 WHERE d=42;
65DELETE FROM t2 WHERE d=53;
66connection slave;
67connection slave;
68SET GLOBAL debug_dbug="";
69SELECT * FROM t2 WHERE d IN (10042,53);
70a	b	c	d	e
714	1	5	10042	NULL
72connection master;
73DROP TABLE t2;
74CREATE TABLE t2 (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT NOT NULL,
75KEY wrong_key5(b),
76UNIQUE expected_key(d),
77KEY wrong_key6(c)) ENGINE=myisam;
78INSERT INTO t2 SELECT d DIV 10, d MOD 41, d MOD 37, d FROM t1;
79connection slave;
80connection slave;
81# Slave will crash if using the wrong or no index
82SET GLOBAL debug_dbug="+d,slave_crash_if_wrong_index,slave_crash_if_table_scan";
83connection master;
84UPDATE t2 SET d=10042 WHERE d=42;
85DELETE FROM t2 WHERE d=53;
86connection slave;
87connection slave;
88SET GLOBAL debug_dbug="";
89SELECT * FROM t2 WHERE d IN (10042,53);
90a	b	c	d
914	1	5	10042
92connection master;
93DROP TABLE t2;
94CREATE TABLE t2 (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT NOT NULL,
95KEY expected_key(b),
96KEY wrong_key7(d),
97KEY wrong_key8(c)) ENGINE=myisam;
98INSERT INTO t2 SELECT d DIV 10, d MOD 41, d MOD 37, d FROM t1;
99connection slave;
100connection slave;
101# Slave will crash if using the wrong or no index
102SET GLOBAL debug_dbug="+d,slave_crash_if_wrong_index,slave_crash_if_table_scan";
103connection master;
104UPDATE t2 SET d=10042 WHERE d=42;
105DELETE FROM t2 WHERE d=53;
106connection slave;
107connection slave;
108SET GLOBAL debug_dbug="";
109SELECT * FROM t2 WHERE d IN (10042,53);
110a	b	c	d
1114	1	5	10042
112connection master;
113DROP TABLE t2;
114CREATE TABLE t2 (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT,
115UNIQUE wrong_key9(d),
116KEY wrong_key10(a),
117PRIMARY KEY expected_key(c,b)) ENGINE=innodb;
118INSERT INTO t2 SELECT d DIV 10, d MOD 41, d MOD 37, d FROM t1;
119connection slave;
120connection slave;
121# Slave will crash if using the wrong or no index
122SET GLOBAL debug_dbug="+d,slave_crash_if_wrong_index,slave_crash_if_table_scan,slave_crash_if_index_scan";
123connection master;
124UPDATE t2 SET d=10042 WHERE d=42;
125DELETE FROM t2 WHERE d=53;
126connection slave;
127connection slave;
128SET GLOBAL debug_dbug="";
129SELECT * FROM t2 WHERE d IN (10042,53);
130a	b	c	d
1314	1	5	10042
132connection master;
133DROP TABLE t2;
134CREATE TABLE t2 (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT, e INT,
135UNIQUE wrong_key11(e),
136KEY wrong_key12(a),
137KEY expected_key(c,b)) ENGINE=innodb;
138INSERT INTO t2 SELECT d DIV 10, d MOD 41, d MOD 37, d, IF(d<10, d, NULL) FROM t1;
139connection slave;
140connection slave;
141ANALYZE TABLE t2;
142Table	Op	Msg_type	Msg_text
143test.t2	analyze	status	OK
144# Slave will crash if using the wrong or no index
145SET GLOBAL debug_dbug="+d,slave_crash_if_wrong_index,slave_crash_if_table_scan";
146connection master;
147UPDATE t2 SET d=10042 WHERE d=42;
148DELETE FROM t2 WHERE d=53;
149connection slave;
150connection slave;
151SET GLOBAL debug_dbug="";
152SELECT * FROM t2 WHERE d IN (10042,53);
153a	b	c	d	e
1544	1	5	10042	NULL
155connection master;
156DROP TABLE t2;
157CREATE TABLE t2 (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT, e INT,
158KEY wrong_key13(a),
159UNIQUE expected_key(e),
160KEY wrong_key14(c,b)) ENGINE=innodb;
161INSERT INTO t2 SELECT d DIV 10, d MOD 41, d MOD 37, d, IF(d<10, d, NULL) FROM t1;
162connection slave;
163connection slave;
164# Slave will crash if using the wrong or no index
165SET GLOBAL debug_dbug="+d,slave_crash_if_wrong_index,slave_crash_if_table_scan";
166connection master;
167UPDATE t2 SET d=10042 WHERE d=42;
168DELETE FROM t2 WHERE d=53;
169connection slave;
170connection slave;
171SET GLOBAL debug_dbug="";
172SELECT * FROM t2 WHERE d IN (10042,53);
173a	b	c	d	e
1744	1	5	10042	NULL
175connection master;
176DROP TABLE t2;
177CREATE TABLE t2 (a INT NOT NULL, d INT) ENGINE=innodb;
178INSERT INTO t2 SELECT d DIV 10, d FROM t1;
179UPDATE t2 SET d=10042 WHERE d=42;
180DELETE FROM t2 WHERE d=53;
181connection slave;
182connection slave;
183SELECT * FROM t2 WHERE d IN (10042,53);
184a	d
1854	10042
186connection master;
187DROP TABLE t2;
188connection master;
189DROP TABLE t1;
190connection slave;
191connection slave;
192SET GLOBAL debug_dbug="";
193include/rpl_end.inc
194