1DROP TABLE IF EXISTS t1;
2CREATE TABLE t1
3(
4key1 INT NOT NULL,
5key2 INT NOT NULL,
6key3 INT NOT NULL,
7key4 INT NOT NULL,
8key5 INT,
9key6 INT,
10key7 INT NOT NULL,
11key8 INT NOT NULL,
12INDEX i1(key1),
13INDEX i2(key2),
14INDEX i3(key3),
15INDEX i4(key4),
16INDEX i5(key5),
17INDEX i6(key6)
18);
19ANALYZE TABLE t1;
20Table	Op	Msg_type	Msg_text
21test.t1	analyze	status	OK
22DROP TABLE IF EXISTS t2;
23CREATE TABLE t2 LIKE t1;
24INSERT INTO t2 SELECT * FROM t1;
25ANALYZE TABLE t2;
26Table	Op	Msg_type	Msg_text
27test.t2	analyze	status	Table is already up to date
28EXPLAIN UPDATE t1 SET key6=7 WHERE key1=80 OR key4=49;
29id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
301	SIMPLE	t1	index_merge	i1,i4	i1,i4	4,4	NULL	#	Using union(i1,i4); Using where
31SELECT COUNT(*), SUM(key6) FROM t1 WHERE key1=80 OR key4=49;
32COUNT(*)	SUM(key6)
333	129
34UPDATE t1 SET key6=7 WHERE key1=80 OR key4=49;
35SELECT COUNT(*), SUM(key6) FROM t1 WHERE key1=80 OR key4=49;
36COUNT(*)	SUM(key6)
373	21
38EXPLAIN UPDATE t1 SET key1=18 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
39id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
401	SIMPLE	t1	index_merge	i2,i3,i5,i6	i3,i5,i2	4,5,4	NULL	#	Using union(intersect(i3,i5),i2); Using where
41SELECT COUNT(*), SUM(key1) FROM t1 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
42COUNT(*)	SUM(key1)
431	80
44UPDATE t1 SET key1=18 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
45SELECT COUNT(*), SUM(key1) FROM t1 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
46COUNT(*)	SUM(key1)
471	18
48EXPLAIN UPDATE t1 SET key3=18 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
49id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
501	SIMPLE	t1	index_merge	i1,i2,i4,i5,i6	i4,i5	4,5	NULL	#	Using union(i4,i5); Using where
51SELECT COUNT(*), SUM(key3) FROM t1 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
52COUNT(*)	SUM(key3)
5310	287
54UPDATE t1 SET key3=18 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
55SELECT COUNT(*), SUM(key3) FROM t1 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
56COUNT(*)	SUM(key3)
5710	180
58EXPLAIN UPDATE t1 SET key8=64 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
59id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
601	SIMPLE	t1	index_merge	i2,i3	i2,i3	4,4	NULL	#	Using union(i2,i3); Using where
61SELECT COUNT(*), SUM(key8) FROM t1 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
62COUNT(*)	SUM(key8)
633	1185
64UPDATE t1 SET key8=64 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
65SELECT COUNT(*), SUM(key8) FROM t1 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
66COUNT(*)	SUM(key8)
673	192
68EXPLAIN UPDATE t1 SET key8=18 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
69id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
701	SIMPLE	t1	index_merge	i1,i2,i3,i4,i5,i6	i5,i6	5,5	NULL	#	Using sort_union(i5,i6); Using where
71SELECT COUNT(*), SUM(key8) FROM t1 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
72COUNT(*)	SUM(key8)
731	1
74UPDATE t1 SET key8=18 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
75SELECT COUNT(*), SUM(key8) FROM t1 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
76COUNT(*)	SUM(key8)
771	18
78EXPLAIN UPDATE t1 SET key3=32 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
79id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
801	SIMPLE	t1	index_merge	i1,i2	i1,i2	4,4	NULL	#	Using sort_union(i1,i2); Using where
81SELECT COUNT(*), SUM(key3) FROM t1 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
82COUNT(*)	SUM(key3)
8339	1168
84UPDATE t1 SET key3=32 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
85SELECT COUNT(*), SUM(key3) FROM t1 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
86COUNT(*)	SUM(key3)
8739	1248
88EXPLAIN UPDATE t1 SET key7=25 WHERE key1 IN (15,70) OR key2 IN (15,70);
89id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
901	SIMPLE	t1	index_merge	i1,i2	i1,i2	4,4	NULL	#	Using sort_union(i1,i2); Using where
91SELECT COUNT(*), SUM(key7) FROM t1 WHERE key1 IN (15,70) OR key2 IN (15,70);
92COUNT(*)	SUM(key7)
932	85
94UPDATE t1 SET key7=25 WHERE key1 IN (15,70) OR key2 IN (15,70);
95SELECT COUNT(*), SUM(key7) FROM t1 WHERE key1 IN (15,70) OR key2 IN (15,70);
96COUNT(*)	SUM(key7)
972	50
98EXPLAIN UPDATE t1 SET key1=10 WHERE key5<5 OR key8<10 ORDER BY key1;
99id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1001	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	#	Using where; Using filesort
101SELECT COUNT(*), SUM(key1) FROM t1 WHERE key5<5 OR key8<10 ORDER BY key1;
102COUNT(*)	SUM(key1)
10311	56
104UPDATE t1 SET key1=10 WHERE key5<5 OR key8<10 ORDER BY key1;
105SELECT COUNT(*), SUM(key1) FROM t1 WHERE key5<5 OR key8<10 ORDER BY key1;
106COUNT(*)	SUM(key1)
10711	110
108EXPLAIN UPDATE t1 left join t2 ON (t2.key1=t2.key1) SET t1.key4=15 WHERE t1.key5=40 OR t1.key4=15;
109id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1101	SIMPLE	t1	index_merge	i4,i5	i5,i4	5,4	NULL	#	Using union(i5,i4); Using where
1111	SIMPLE	t2	index	NULL	i1	4	NULL	#	Using where; Using index; Using join buffer (Block Nested Loop)
112SELECT COUNT(*), SUM(key4) FROM t1;
113COUNT(*)	SUM(key4)
1142057	2098421
115UPDATE t1 left join t2 ON (t2.key1=t2.key1) SET t1.key4=15 WHERE t1.key5=40 OR t1.key4=15;
116SELECT COUNT(*), SUM(key4) FROM t1;
117COUNT(*)	SUM(key4)
1182057	2098396
119EXPLAIN UPDATE t2 SET key7=7 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
120id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1211	PRIMARY	t2	index_merge	i3,i4	i3,i4	4,4	NULL	#	Using union(i3,i4); Using where
1222	SUBQUERY	t1	index_merge	i1,i5	i1,i5	4,5	NULL	#	Using union(i1,i5); Using where
123SELECT COUNT(*), SUM(key7) FROM t2 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
124COUNT(*)	SUM(key7)
1250	NULL
126UPDATE t2 SET key7=7 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
127SELECT COUNT(*), SUM(key7) FROM t2 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
128COUNT(*)	SUM(key7)
1290	NULL
130EXPLAIN UPDATE t2 SET key2=2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
131id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1321	PRIMARY	t2	index_merge	i1,i4	i1,i4	4,4	NULL	#	Using union(i1,i4); Using where
1333	SUBQUERY	t1	index_merge	i1,i4	i1,i4	4,4	NULL	#	Using sort_union(i1,i4); Using where
1342	SUBQUERY	t1	index_merge	i1,i4	i1,i4	4,4	NULL	#	Using sort_union(i1,i4); Using where
135SELECT COUNT(*), SUM(key2) FROM t2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
136COUNT(*)	SUM(key2)
1371	25
138UPDATE t2 SET key2=2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
139SELECT COUNT(*), SUM(key2) FROM t2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
140COUNT(*)	SUM(key2)
1411	2
142EXPLAIN UPDATE t2 SET key3=20 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
143id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1441	PRIMARY	t2	ALL	NULL	NULL	NULL	NULL	#	NULL
1452	SUBQUERY	t1	index_merge	i4,i6	i6,i4	5,4	NULL	#	Using sort_union(i6,i4); Using where
146SELECT COUNT(*), SUM(key3) FROM t2 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
147COUNT(*)	SUM(key3)
1482057	2098421
149UPDATE t2 SET key3=20 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
150SELECT COUNT(*), SUM(key3) FROM t2 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
151COUNT(*)	SUM(key3)
1522057	41140
153EXPLAIN UPDATE t1 SET key8=50 WHERE key5=80 OR key6=49;
154id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1551	SIMPLE	t1	index_merge	i5,i6	i5,i6	5,5	NULL	#	Using union(i5,i6); Using where
156SELECT COUNT(*), SUM(key8) FROM t1 WHERE key5=80 OR key6=49;
157COUNT(*)	SUM(key8)
1581	64
159UPDATE t1 SET key8=50 WHERE key5=80 OR key6=49;
160SELECT COUNT(*), SUM(key8) FROM t1 WHERE key5=80 OR key6=49;
161COUNT(*)	SUM(key8)
1621	50
163DROP TABLE IF EXISTS t1;
164CREATE TABLE t1
165(
166key1 INT NOT NULL,
167key2 INT NOT NULL,
168key3 INT NOT NULL,
169key4 INT NOT NULL,
170key5 INT,
171key6 INT,
172key7 INT NOT NULL,
173key8 INT NOT NULL,
174INDEX i1(key1,key2),
175INDEX i2(key2,key1),
176INDEX i3(key3,key4),
177INDEX i4(key4,key3),
178INDEX i5(key5,key6),
179INDEX i6(key6,key5),
180INDEX i7(key7,key8),
181INDEX i8(key8,key7)
182);
183ANALYZE TABLE t1;
184Table	Op	Msg_type	Msg_text
185test.t1	analyze	status	OK
186DROP TABLE IF EXISTS t2;
187CREATE TABLE t2 LIKE t1;
188INSERT INTO t2 SELECT * FROM t1;
189ANALYZE TABLE t2;
190Table	Op	Msg_type	Msg_text
191test.t2	analyze	status	Table is already up to date
192EXPLAIN UPDATE t1 SET key6=7 WHERE key1=80 OR key4=49;
193id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1941	SIMPLE	t1	index_merge	i1,i4	i1,i4	4,4	NULL	#	Using sort_union(i1,i4); Using where
195SELECT COUNT(*), SUM(key6) FROM t1 WHERE key1=80 OR key4=49;
196COUNT(*)	SUM(key6)
1973	129
198UPDATE t1 SET key6=7 WHERE key1=80 OR key4=49;
199SELECT COUNT(*), SUM(key6) FROM t1 WHERE key1=80 OR key4=49;
200COUNT(*)	SUM(key6)
2013	21
202EXPLAIN UPDATE t1 SET key1=18 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
203id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2041	SIMPLE	t1	index_merge	i2,i3,i5,i6	i3,i2	4,4	NULL	#	Using sort_union(i3,i2); Using where; Using temporary
205SELECT COUNT(*), SUM(key1) FROM t1 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
206COUNT(*)	SUM(key1)
2071	80
208UPDATE t1 SET key1=18 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
209SELECT COUNT(*), SUM(key1) FROM t1 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
210COUNT(*)	SUM(key1)
2111	18
212EXPLAIN UPDATE t1 SET key3=18 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
213id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2141	SIMPLE	t1	index_merge	i1,i2,i4,i5,i6	i4,i5	4,5	NULL	#	Using sort_union(i4,i5); Using where; Using temporary
215SELECT COUNT(*), SUM(key3) FROM t1 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
216COUNT(*)	SUM(key3)
21710	287
218UPDATE t1 SET key3=18 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
219SELECT COUNT(*), SUM(key3) FROM t1 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
220COUNT(*)	SUM(key3)
22110	180
222EXPLAIN UPDATE t1 SET key8=64 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
223id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2241	SIMPLE	t1	index_merge	i2,i3	i2,i3	4,4	NULL	#	Using sort_union(i2,i3); Using where
225SELECT COUNT(*), SUM(key8) FROM t1 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
226COUNT(*)	SUM(key8)
2273	1185
228UPDATE t1 SET key8=64 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
229SELECT COUNT(*), SUM(key8) FROM t1 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
230COUNT(*)	SUM(key8)
2313	192
232EXPLAIN UPDATE t1 SET key8=18 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
233id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2341	SIMPLE	t1	index_merge	i1,i2,i3,i4,i5,i6	i5,i6	5,5	NULL	#	Using sort_union(i5,i6); Using where
235SELECT COUNT(*), SUM(key8) FROM t1 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
236COUNT(*)	SUM(key8)
2371	1
238UPDATE t1 SET key8=18 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
239SELECT COUNT(*), SUM(key8) FROM t1 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
240COUNT(*)	SUM(key8)
2411	18
242EXPLAIN UPDATE t1 SET key3=32 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
243id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2441	SIMPLE	t1	index_merge	i1,i2	i1,i2	4,4	NULL	#	Using sort_union(i1,i2); Using where
245SELECT COUNT(*), SUM(key3) FROM t1 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
246COUNT(*)	SUM(key3)
24739	1168
248UPDATE t1 SET key3=32 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
249SELECT COUNT(*), SUM(key3) FROM t1 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
250COUNT(*)	SUM(key3)
25139	1248
252EXPLAIN UPDATE t1 SET key7=25 WHERE key1 IN (15,70) OR key2 IN (15,70);
253id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2541	SIMPLE	t1	index_merge	i1,i2	i1,i2	4,4	NULL	#	Using sort_union(i1,i2); Using where
255SELECT COUNT(*), SUM(key7) FROM t1 WHERE key1 IN (15,70) OR key2 IN (15,70);
256COUNT(*)	SUM(key7)
2572	85
258UPDATE t1 SET key7=25 WHERE key1 IN (15,70) OR key2 IN (15,70);
259SELECT COUNT(*), SUM(key7) FROM t1 WHERE key1 IN (15,70) OR key2 IN (15,70);
260COUNT(*)	SUM(key7)
2612	50
262EXPLAIN UPDATE t1 SET key1=10 WHERE key5<5 OR key8<10 ORDER BY key1;
263id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2641	SIMPLE	t1	index_merge	i5,i8	i5,i8	5,4	NULL	#	Using sort_union(i5,i8); Using where; Using filesort
265SELECT COUNT(*), SUM(key1) FROM t1 WHERE key5<5 OR key8<10 ORDER BY key1;
266COUNT(*)	SUM(key1)
26711	56
268UPDATE t1 SET key1=10 WHERE key5<5 OR key8<10 ORDER BY key1;
269SELECT COUNT(*), SUM(key1) FROM t1 WHERE key5<5 OR key8<10 ORDER BY key1;
270COUNT(*)	SUM(key1)
27111	110
272EXPLAIN UPDATE t1 left join t2 ON (t2.key1=t2.key1) SET t1.key4=15 WHERE t1.key5=40 OR t1.key4=15;
273id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2741	SIMPLE	t1	index_merge	i4,i5	i5,i4	5,4	NULL	#	Using sort_union(i5,i4); Using where
2751	SIMPLE	t2	index	NULL	i1	8	NULL	#	Using where; Using index; Using join buffer (Block Nested Loop)
276SELECT COUNT(*), SUM(key4) FROM t1;
277COUNT(*)	SUM(key4)
2782057	2098421
279UPDATE t1 left join t2 ON (t2.key1=t2.key1) SET t1.key4=15 WHERE t1.key5=40 OR t1.key4=15;
280SELECT COUNT(*), SUM(key4) FROM t1;
281COUNT(*)	SUM(key4)
2822057	2098396
283EXPLAIN UPDATE t2 SET key7=7 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
284id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2851	PRIMARY	t2	index_merge	i3,i4	i3,i4	4,4	NULL	#	Using sort_union(i3,i4); Using where
2862	SUBQUERY	t1	index_merge	i1,i5	i1,i5	4,5	NULL	#	Using sort_union(i1,i5); Using where
287SELECT COUNT(*), SUM(key7) FROM t2 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
288COUNT(*)	SUM(key7)
2890	NULL
290UPDATE t2 SET key7=7 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
291SELECT COUNT(*), SUM(key7) FROM t2 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
292COUNT(*)	SUM(key7)
2930	NULL
294EXPLAIN UPDATE t2 SET key2=2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
295id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
2961	PRIMARY	t2	index_merge	i1,i4	i1,i4	4,4	NULL	#	Using sort_union(i1,i4); Using where; Using temporary
2973	SUBQUERY	t1	index_merge	i1,i4	i1,i4	4,4	NULL	#	Using sort_union(i1,i4); Using where
2982	SUBQUERY	t1	index_merge	i1,i4	i1,i4	4,4	NULL	#	Using sort_union(i1,i4); Using where
299SELECT COUNT(*), SUM(key2) FROM t2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
300COUNT(*)	SUM(key2)
3011	25
302UPDATE t2 SET key2=2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
303SELECT COUNT(*), SUM(key2) FROM t2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
304COUNT(*)	SUM(key2)
3051	2
306EXPLAIN UPDATE t2 SET key3=20 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
307id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
3081	PRIMARY	t2	ALL	NULL	NULL	NULL	NULL	#	NULL
3092	SUBQUERY	t1	index_merge	i4,i6	i6,i4	5,4	NULL	#	Using sort_union(i6,i4); Using where
310SELECT COUNT(*), SUM(key3) FROM t2 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
311COUNT(*)	SUM(key3)
3122057	2098421
313UPDATE t2 SET key3=20 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
314SELECT COUNT(*), SUM(key3) FROM t2 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
315COUNT(*)	SUM(key3)
3162057	41140
317EXPLAIN UPDATE t1 SET key8=50 WHERE key5=80 OR key6=49;
318id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
3191	SIMPLE	t1	index_merge	i5,i6	i5,i6	5,5	NULL	#	Using sort_union(i5,i6); Using where
320SELECT COUNT(*), SUM(key8) FROM t1 WHERE key5=80 OR key6=49;
321COUNT(*)	SUM(key8)
3221	64
323UPDATE t1 SET key8=50 WHERE key5=80 OR key6=49;
324SELECT COUNT(*), SUM(key8) FROM t1 WHERE key5=80 OR key6=49;
325COUNT(*)	SUM(key8)
3261	50
327DROP TABLE t1;
328DROP TABLE t2;
329