1
by brian
clean slate |
1 |
#
|
2 |
# DuplicateElimination strategy test |
|
3 |
#
|
|
4 |
--source include/have_innodb.inc
|
|
5 |
--disable_warnings
|
|
6 |
drop table if exists t0, t1, t2, t3; |
|
7 |
--enable_warnings
|
|
8 |
||
9 |
||
10 |
create table t0 (a int); |
|
11 |
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); |
|
12 |
||
13 |
# First test simple cases: I20 order, no join buffering. |
|
14 |
||
15 |
create table t1 ( |
|
16 |
a int, |
|
17 |
b int |
|
18 |
);
|
|
19 |
insert into t1 values (1,1),(1,1),(2,2); |
|
20 |
||
21 |
create table t2 ( |
|
22 |
a int, |
|
23 |
b int, |
|
24 |
key(b) |
|
25 |
);
|
|
26 |
insert into t2 select a, a/2 from t0; |
|
27 |
||
28 |
select * from t1; |
|
29 |
select * from t2; |
|
30 |
explain select * from t2 where b in (select a from t1); |
|
31 |
select * from t2 where b in (select a from t1); |
|
642.1.78
by Lee
enable subselect_sj2 |
32 |
|
33 |
#Bug 310344: This dies because pk* char(200) is too big. Changed pk* to char(100) |
|
34 |
#due to UTF8 column sizes. |
|
1
by brian
clean slate |
35 |
# Try an InnoDB table with very long rowid |
36 |
create table t3 ( |
|
37 |
a int, |
|
38 |
b int, |
|
39 |
key(b), |
|
642.1.78
by Lee
enable subselect_sj2 |
40 |
pk1 char(100), pk2 char(100), pk3 char(100), |
1
by brian
clean slate |
41 |
primary key(pk1, pk2, pk3) |
42 |
) engine=innodb; |
|
43 |
insert into t3 select a,a, a,a,a from t0; |
|
44 |
||
45 |
explain select * from t3 where b in (select a from t1); |
|
46 |
select * from t3 where b in (select a from t1); |
|
47 |
||
48 |
# Test overflow to MyISAM: |
|
49 |
set @save_max_heap_table_size= @@max_heap_table_size; |
|
50 |
set max_heap_table_size=16384; |
|
51 |
set @save_join_buffer_size = @@join_buffer_size; |
|
52 |
||
642.1.78
by Lee
enable subselect_sj2 |
53 |
#Bug 310344: This dies because pk* char(200) is too big. Based on UTF8 colummns. |
54 |
#Changed pk* to char(100) |
|
1
by brian
clean slate |
55 |
drop table t3; |
56 |
create table t3 ( |
|
57 |
a int, |
|
58 |
b int, |
|
59 |
key(b), |
|
642.1.78
by Lee
enable subselect_sj2 |
60 |
pk1 char(100), pk2 char(100), |
1
by brian
clean slate |
61 |
primary key(pk1, pk2) |
62 |
) engine=innodb; |
|
63 |
insert into t3 select |
|
64 |
A.a + 10*B.a, A.a + 10*B.a, A.a + 10*B.a, A.a + 10*B.a |
|
65 |
from t0 A, t0 B where B.a <5; |
|
66 |
||
67 |
explain select * from t3 where b in (select a from t0); |
|
68 |
select * from t3 where b in (select A.a+B.a from t0 A, t0 B where B.a<5); |
|
69 |
||
70 |
set join_buffer_size= @save_join_buffer_size; |
|
71 |
set max_heap_table_size= @save_max_heap_table_size; |
|
72 |
||
73 |
# O2I join orders, with shortcutting: |
|
74 |
explain select * from t1 where a in (select b from t2); |
|
75 |
select * from t1; |
|
76 |
select * from t1 where a in (select b from t2); |
|
77 |
||
78 |
drop table t1, t2, t3; |
|
79 |
# (no need for anything in range/index_merge/DS-MRR) |
|
80 |
||
81 |
#
|
|
82 |
# Test join buffering |
|
83 |
#
|
|
84 |
set @save_join_buffer_size = @@join_buffer_size; |
|
642.1.78
by Lee
enable subselect_sj2 |
85 |
set join_buffer_size=8000; |
86 |
#Bug 310447: This query dies because binary datatype is not supported with join buffering and create table command. |
|
87 |
#Change binary(200) to varbinary(20) |
|
88 |
create table t1 (a int, filler1 varbinary(20), filler2 varbinary(20)); |
|
1
by brian
clean slate |
89 |
insert into t1 select a, 'filler123456', 'filler123456' from t0; |
90 |
insert into t1 select a+10, 'filler123456', 'filler123456' from t0; |
|
91 |
||
92 |
create table t2 as select * from t1; |
|
93 |
insert into t1 select a+20, 'filler123456', 'filler123456' from t0; |
|
94 |
||
95 |
insert into t1 values (2, 'duplicate ok', 'duplicate ok'); |
|
96 |
insert into t1 values (18, 'duplicate ok', 'duplicate ok'); |
|
97 |
||
98 |
insert into t2 values (3, 'duplicate ok', 'duplicate ok'); |
|
99 |
insert into t2 values (19, 'duplicate ok', 'duplicate ok'); |
|
100 |
||
642.1.78
by Lee
enable subselect_sj2 |
101 |
#This dies because: changed ot to t0 |
1
by brian
clean slate |
102 |
explain select |
103 |
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z |
|
642.1.78
by Lee
enable subselect_sj2 |
104 |
from t1 t0 where a in (select a from t2 it); |
1
by brian
clean slate |
105 |
select
|
106 |
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z |
|
642.1.78
by Lee
enable subselect_sj2 |
107 |
from t1 t0 where a in (select a from t2 it); |
1
by brian
clean slate |
108 |
|
109 |
explain select |
|
110 |
a, mid(filler1, 1,10), length(filler1)=length(filler2) |
|
642.1.78
by Lee
enable subselect_sj2 |
111 |
from t2 t0 where a in (select a from t1 it); |
1
by brian
clean slate |
112 |
select
|
113 |
a, mid(filler1, 1,10), length(filler1)=length(filler2) |
|
642.1.78
by Lee
enable subselect_sj2 |
114 |
from t2 t0 where a in (select a from t1 it); |
1
by brian
clean slate |
115 |
|
116 |
# Now let the buffer overfill: |
|
117 |
insert into t1 select a+20, 'filler123456', 'filler123456' from t0; |
|
118 |
insert into t1 select a+20, 'filler123456', 'filler123456' from t0; |
|
119 |
||
120 |
explain select |
|
121 |
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z |
|
642.1.78
by Lee
enable subselect_sj2 |
122 |
from t1 t0 where a in (select a from t2 it); |
1
by brian
clean slate |
123 |
select
|
124 |
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z |
|
642.1.78
by Lee
enable subselect_sj2 |
125 |
from t1 t0 where a in (select a from t2 it); |
1
by brian
clean slate |
126 |
|
127 |
explain select |
|
128 |
a, mid(filler1, 1,10), length(filler1)=length(filler2) |
|
642.1.78
by Lee
enable subselect_sj2 |
129 |
from t2 t0 where a in (select a from t1 it); |
1
by brian
clean slate |
130 |
select
|
131 |
a, mid(filler1, 1,10), length(filler1)=length(filler2) |
|
642.1.78
by Lee
enable subselect_sj2 |
132 |
from t2 t0 where a in (select a from t1 it); |
1
by brian
clean slate |
133 |
|
134 |
drop table t1, t2; |
|
135 |
||
136 |
# Check ref access to tables inside the OJ nest inside the SJ nest |
|
137 |
create table t1 (a int, b int, key(a)); |
|
138 |
create table t2 (a int, b int, key(a)); |
|
139 |
create table t3 (a int, b int, key(a)); |
|
140 |
||
141 |
insert into t1 select a,a from t0; |
|
142 |
insert into t2 select a,a from t0; |
|
143 |
insert into t3 select a,a from t0; |
|
144 |
||
145 |
--echo t2 and t3 must be use 'ref', not 'ALL':
|
|
146 |
explain select * |
|
147 |
from t0 where a in |
|
148 |
(select t2.a+t3.a from t1 left join (t2 join t3) on t2.a=t1.a and t3.a=t1.a); |
|
149 |
||
150 |
drop table t0, t1,t2,t3; |
|
151 |
||
152 |
#
|
|
153 |
# Bug #27348: Assertion abort for a query with two subqueries to be flattened |
|
642.1.78
by Lee
enable subselect_sj2 |
154 |
# Changed int(11) to int. |
1
by brian
clean slate |
155 |
CREATE TABLE t1 ( |
642.1.78
by Lee
enable subselect_sj2 |
156 |
ID int NOT NULL auto_increment, |
1
by brian
clean slate |
157 |
Name char(35) NOT NULL default '', |
158 |
Country char(3) NOT NULL default '', |
|
642.1.78
by Lee
enable subselect_sj2 |
159 |
Population int NOT NULL default '0', |
1
by brian
clean slate |
160 |
PRIMARY KEY (ID), |
161 |
INDEX (Population), |
|
162 |
INDEX (Country) |
|
163 |
);
|
|
164 |
CREATE TABLE t2 ( |
|
165 |
Code char(3) NOT NULL default '', |
|
166 |
Name char(52) NOT NULL default '', |
|
167 |
SurfaceArea float(10,2) NOT NULL default '0.00', |
|
642.1.78
by Lee
enable subselect_sj2 |
168 |
Population int NOT NULL default '0', |
169 |
Capital int default NULL, |
|
1
by brian
clean slate |
170 |
PRIMARY KEY (Code), |
171 |
UNIQUE INDEX (Name), |
|
172 |
INDEX (Population) |
|
173 |
);
|
|
174 |
CREATE TABLE t3 ( |
|
175 |
Country char(3) NOT NULL default '', |
|
176 |
Language char(30) NOT NULL default '', |
|
177 |
Percentage float(3,1) NOT NULL default '0.0', |
|
178 |
PRIMARY KEY (Country, Language), |
|
179 |
INDEX (Percentage) |
|
180 |
);
|
|
181 |
||
182 |
--disable_query_log
|
|
183 |
INSERT INTO t1 VALUES |
|
184 |
(1,'Kabul','AFG',1780000),(2,'Qandahar','AFG',237500), |
|
185 |
(3,'Herat','AFG',186800),(4,'Mazar-e-Sharif','AFG',127800), |
|
186 |
(5,'Amsterdam','NLD',731200),(6,'Rotterdam','NLD',593321), |
|
187 |
(7,'Haag','NLD',440900),(8,'Utrecht','NLD',234323), |
|
188 |
(9,'Eindhoven','NLD',201843),(10,'Tilburg','NLD',193238), |
|
189 |
(11,'Groningen','NLD',172701),(12,'Breda','NLD',160398), |
|
190 |
(13,'Apeldoorn','NLD',153491),(14,'Nijmegen','NLD',152463), |
|
191 |
(15,'Enschede','NLD',149544),(16,'Haarlem','NLD',148772), |
|
192 |
(17,'Almere','NLD',142465),(18,'Arnhem','NLD',138020), |
|
193 |
(19,'Zaanstad','NLD',135621),(20,'´s-Hertogenbosch','NLD',129170), |
|
194 |
(21,'Amersfoort','NLD',126270),(22,'Maastricht','NLD',122087), |
|
195 |
(23,'Dordrecht','NLD',119811),(24,'Leiden','NLD',117196), |
|
196 |
(25,'Haarlemmermeer','NLD',110722),(26,'Zoetermeer','NLD',110214), |
|
197 |
(27,'Emmen','NLD',105853),(28,'Zwolle','NLD',105819), |
|
198 |
(29,'Ede','NLD',101574),(30,'Delft','NLD',95268); |
|
199 |
||
200 |
INSERT INTO t2 VALUES |
|
201 |
('AFG','Afghanistan',652090.00,22720000,1), |
|
202 |
('NLD','Netherlands',41526.00,15864000,5), |
|
203 |
('ANT','Netherlands Antilles',800.00,217000,33), |
|
204 |
('ALB','Albania',28748.00,3401200,34), |
|
205 |
('DZA','Algeria',2381741.00,31471000,35), |
|
206 |
('ASM','American Samoa',199.00,68000,54), |
|
207 |
('AND','Andorra',468.00,78000,55), |
|
208 |
('AGO','Angola',1246700.00,12878000,56), |
|
209 |
('AIA','Anguilla',96.00,8000,62), |
|
210 |
('ATG','Antigua and Barbuda',442.00,68000,63), |
|
211 |
('ARE','United Arab Emirates',83600.00,2441000,65), |
|
212 |
('ARG','Argentina',2780400.00,37032000,69), |
|
213 |
('ARM','Armenia',29800.00,3520000,126), |
|
214 |
('ABW','Aruba',193.00,103000,129), |
|
215 |
('AUS','Australia',7741220.00,18886000,135), |
|
216 |
('AZE','Azerbaijan',86600.00,7734000,144); |
|
217 |
||
218 |
INSERT INTO t3 VALUES |
|
219 |
('AFG','Pashto',52.4),('NLD','Dutch',95.6), |
|
220 |
('ANT','Papiamento',86.2),('ALB','Albaniana',97.9), |
|
221 |
('DZA','Arabic',86.0),('ASM','Samoan',90.6), |
|
222 |
('AND','Spanish',44.6),('AGO','Ovimbundu',37.2), |
|
223 |
('AIA','English',0.0),('ATG','Creole English',95.7), |
|
224 |
('ARE','Arabic',42.0),('ARG','Spanish',96.8), |
|
225 |
('ARM','Armenian',93.4),('ABW','Papiamento',76.7), |
|
226 |
('AUS','English',81.2),('AZE','Azerbaijani',89.0), |
|
227 |
('BHS','Creole English',89.7),('BHR','Arabic',67.7), |
|
228 |
('BGD','Bengali',97.7),('BRB','Bajan',95.1), |
|
229 |
('BEL','Dutch',59.2),('BLZ','English',50.8); |
|
230 |
--enable_query_log
|
|
231 |
||
232 |
EXPLAIN
|
|
233 |
SELECT Name FROM t2 |
|
234 |
WHERE t2.Code IN (SELECT Country FROM t1 WHERE Population > 5000000) |
|
235 |
AND
|
|
236 |
t2.Code IN (SELECT Country FROM t3 |
|
237 |
WHERE Language='English' AND Percentage > 10 AND |
|
238 |
t2.Population > 100000); |
|
239 |
||
240 |
DROP TABLE t1,t2,t3; |
|
241 |
||
242 |
# BUG#30993: |
|
642.1.78
by Lee
enable subselect_sj2 |
243 |
# changed syntax of int(11) to int |
1
by brian
clean slate |
244 |
CREATE TABLE t1 ( |
245 |
Code char(3) NOT NULL DEFAULT '', |
|
246 |
Name char(52) NOT NULL DEFAULT '', |
|
247 |
Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL DEFAULT 'Asia', |
|
248 |
Region char(26) NOT NULL DEFAULT '', |
|
249 |
SurfaceArea float(10,2) NOT NULL DEFAULT '0.00', |
|
642.1.78
by Lee
enable subselect_sj2 |
250 |
IndepYear int DEFAULT NULL, |
251 |
Population int NOT NULL DEFAULT '0', |
|
1
by brian
clean slate |
252 |
LifeExpectancy float(3,1) DEFAULT NULL, |
253 |
GNP float(10,2) DEFAULT NULL, |
|
254 |
GNPOld float(10,2) DEFAULT NULL, |
|
255 |
LocalName char(45) NOT NULL DEFAULT '', |
|
256 |
GovernmentForm char(45) NOT NULL DEFAULT '', |
|
257 |
HeadOfState char(60) DEFAULT NULL, |
|
642.1.78
by Lee
enable subselect_sj2 |
258 |
Capital int DEFAULT NULL, |
1
by brian
clean slate |
259 |
Code2 char(2) NOT NULL DEFAULT '', |
260 |
PRIMARY KEY (Code) |
|
261 |
);
|
|
262 |
||
263 |
CREATE TABLE t2 ( |
|
642.1.78
by Lee
enable subselect_sj2 |
264 |
ID int NOT NULL, |
1
by brian
clean slate |
265 |
Name char(35) NOT NULL DEFAULT '', |
266 |
CountryCode char(3) NOT NULL DEFAULT '', |
|
642.1.78
by Lee
enable subselect_sj2 |
267 |
Population int NOT NULL DEFAULT '0', |
1
by brian
clean slate |
268 |
PRIMARY KEY (ID), |
269 |
KEY CountryCode (CountryCode) |
|
270 |
);
|
|
271 |
||
642.1.78
by Lee
enable subselect_sj2 |
272 |
# This died because the test data contained over 100 records with |
273 |
# characters such as umlauts, french accent codes. |
|
274 |
||
1
by brian
clean slate |
275 |
--echo Fill the table with test data
|
276 |
--disable_query_log
|
|
277 |
insert into t2 (ID, Name, CountryCode, Population) values |
|
278 |
(1,'Kabul','AFG',1780000), (2,'Qandahar','AFG',237500), (3,'Herat','AFG',186800), |
|
279 |
(4,'Mazar-e-Sharif','AFG',127800), (33,'Willemstad','ANT',2345), (34,'Tirana','ALB',270000), |
|
280 |
(55,'Andorra la Vella','AND',21189), (61,'South Hill','AIA',961), (62,'The Valley','AIA',595), |
|
642.1.78
by Lee
enable subselect_sj2 |
281 |
(63,'Saint Johns','ATG',24000), (64,'Dubai','ARE',669181), (65,'Abu Dhabi','ARE',398695), |
1
by brian
clean slate |
282 |
(66,'Sharja','ARE',320095), (67,'al-Ayn','ARE',225970), (68,'Ajman','ARE',114395), |
283 |
(126,'Yerevan','ARM',1248700), (127,'Gjumri','ARM',211700), (128,'Vanadzor','ARM',172700), |
|
642.1.78
by Lee
enable subselect_sj2 |
284 |
(129,'Oranjestad','ABW',29034), (144,'Baku','AZE',1787800), (145,'Gnc','AZE',299300), |
285 |
(146,'Sumqayit','AZE',283000), (147,'evir','AZE',93900), (148,'Nassau','BHS',172000), |
|
1
by brian
clean slate |
286 |
(149,'al-Manama','BHR',148000), (150,'Dhaka','BGD',3612850), (151,'Chittagong','BGD',1392860), |
287 |
(152,'Khulna','BGD',663340), (153,'Rajshahi','BGD',294056), (154,'Narayanganj','BGD',202134), |
|
288 |
(155,'Rangpur','BGD',191398), (156,'Mymensingh','BGD',188713), (157,'Barisal','BGD',170232), |
|
289 |
(158,'Tungi','BGD',168702), (159,'Jessore','BGD',139710), (160,'Comilla','BGD',135313), |
|
290 |
(161,'Nawabganj','BGD',130577), (162,'Dinajpur','BGD',127815), (163,'Bogra','BGD',120170), |
|
291 |
(164,'Sylhet','BGD',117396), (165,'Brahmanbaria','BGD',109032), (166,'Tangail','BGD',106004), |
|
292 |
(167,'Jamalpur','BGD',103556), (168,'Pabna','BGD',103277), (169,'Naogaon','BGD',101266), |
|
293 |
(170,'Sirajganj','BGD',99669), (171,'Narsinghdi','BGD',98342), (172,'Saidpur','BGD',96777), |
|
294 |
(173,'Gazipur','BGD',96717), (174,'Bridgetown','BRB',6070), (175,'Antwerpen','BEL',446525), |
|
642.1.78
by Lee
enable subselect_sj2 |
295 |
(176,'Gent','BEL',224180), (177,'Charleroi','BEL',200827), (178,'Lige','BEL',185639), |
296 |
(179,'Bruxelles','BEL',133859), (180,'Brugge','BEL',116246), (181,'Schaerbeek','BEL',105692), |
|
1
by brian
clean slate |
297 |
(182,'Namur','BEL',105419), (183,'Mons','BEL',90935), (184,'Belize City','BLZ',55810), |
298 |
(185,'Belmopan','BLZ',7105), (190,'Saint George','BMU',1800), (191,'Hamilton','BMU',1200), |
|
299 |
(192,'Thimphu','BTN',22000), (201,'Sarajevo','BIH',360000), (202,'Banja Luka','BIH',143079), |
|
300 |
(203,'Zenica','BIH',96027), (538,'Bandar Seri Begawan','BRN',21484), (539,'Sofija','BGR',1122302), |
|
301 |
(540,'Plovdiv','BGR',342584), (541,'Varna','BGR',299801), (542,'Burgas','BGR',195255), |
|
642.1.78
by Lee
enable subselect_sj2 |
302 |
(543,'Ruse','BGR',166467), (544,'Stara Zagora','BGR',147939), |
303 |
(545,'Pleven','BGR',121952), |
|
304 |
(546,'Sliven','BGR',105530), (547,'Dobric','BGR',100399), (548,'umen','BGR',94686), |
|
305 |
(553,'George Town','CYM',19600), (584,'San Jose','CRI',339131), |
|
306 |
(1523,'Wien','AUT',1608144), |
|
1
by brian
clean slate |
307 |
(1524,'Graz','AUT',240967), (1525,'Linz','AUT',188022), (1526,'Salzburg','AUT',144247), |
642.1.78
by Lee
enable subselect_sj2 |
308 |
|
309 |
(1814,'Winnipeg','CAN',618477), (1815,'Edmonton','CAN',616306), |
|
310 |
(1816,'Mississauga','CAN',608072), |
|
311 |
(1817,'Scarborough','CAN',594501), (1818,'Vancouver','CAN',514008), |
|
312 |
(1819,'Etobicoke','CAN',348845), |
|
313 |
(1820,'London','CAN',339917), (1821,'Hamilton','CAN',335614), |
|
314 |
(1822,'Ottawa','CAN',335277), |
|
315 |
(1823,'Laval','CAN',330393), (1824,'Surrey','CAN',304477), |
|
316 |
(1825,'Brampton','CAN',296711), |
|
317 |
(1826,'Windsor','CAN',207588), (1827,'Saskatoon','CAN',193647), |
|
318 |
(1828,'Kitchener','CAN',189959), |
|
319 |
(1829,'Markham','CAN',189098), (1830,'Regina','CAN',180400), |
|
320 |
(1831,'Burnaby','CAN',179209), |
|
321 |
(1832,'Quebec','CAN',167264), (1833,'York','CAN',154980), (1834,'Richmond','CAN',148867), |
|
322 |
(1835,'Vaughan','CAN',147889), (1836,'Burlington','CAN',145150), |
|
323 |
(1837,'Oshawa','CAN',140173), |
|
324 |
(1838,'Oakville','CAN',139192), (1839,'Saint Catharines','CAN',136216), |
|
325 |
(1840,'Longueuil','CAN',127977), |
|
326 |
(1841,'Richmond Hill','CAN',116428), (1842,'Thunder Bay','CAN',115913), |
|
327 |
(1843,'Nepean','CAN',115100), |
|
328 |
(1844,'Cape Breton','CAN',114733), (1845,'East York','CAN',114034), |
|
329 |
(1846,'Halifax','CAN',113910), |
|
330 |
(1847,'Cambridge','CAN',109186), (1848,'Gloucester','CAN',107314), |
|
331 |
(1849,'Abbotsford','CAN',105403), |
|
332 |
(1850,'Guelph','CAN',103593), (1851,'Saint John4s','CAN',101936), |
|
333 |
(1852,'Coquitlam','CAN',101820), |
|
334 |
(3534,'Soligorsk','BLR',101000), (3535,'Molodetno','BLR',97000); |
|
1
by brian
clean slate |
335 |
|
336 |
insert into t1 (Code, Name, Continent) values |
|
337 |
('AFG','Afghanistan','Asia'), ('ANT','Netherlands Antilles','North America'), |
|
338 |
('ALB','Albania','Europe'), ('AND','Andorra','Europe'), |
|
339 |
('AIA','Anguilla','North America'), ('ATG','Antigua and Barbuda','North America'), |
|
340 |
('ARE','United Arab Emirates','Asia'), ('ARM','Armenia','Asia'), |
|
341 |
('ABW','Aruba','North America'), ('AZE','Azerbaijan','Asia'), |
|
342 |
('BHS','Bahamas','North America'), ('BHR','Bahrain','Asia'), |
|
343 |
('BGD','Bangladesh','Asia'), ('BRB','Barbados','North America'), |
|
344 |
('BEL','Belgium','Europe'), ('BLZ','Belize','North America'), |
|
345 |
('BMU','Bermuda','North America'), ('BTN','Bhutan','Asia'), |
|
346 |
('BIH','Bosnia and Herzegovina','Europe'), ('BRN','Brunei','Asia'), |
|
347 |
('BGR','Bulgaria','Europe'), ('CYM','Cayman Islands','North America'), |
|
348 |
('CRI','Costa Rica','North America'), ('AUT','Austria','Europe'), |
|
349 |
('CAN','Canada','North America'), ('CHN','China','Asia'), |
|
350 |
('CUB','Cuba','North America'), ('CYP','Cyprus','Asia'), |
|
351 |
('CHE','Switzerland','Europe'), ('CZE','Czech Republic','Europe'), |
|
352 |
('BLR','Belarus','Europe'); |
|
642.1.78
by Lee
enable subselect_sj2 |
353 |
#update t2 set population=6000000 where Name in ('Wien', 'Vancouver', 'Praha'); |
1
by brian
clean slate |
354 |
--enable_query_log
|
355 |
||
356 |
--echo This must not use LooseScan:
|
|
357 |
EXPLAIN SELECT Name FROM t1 |
|
358 |
WHERE t1.Code IN ( |
|
359 |
SELECT t2.CountryCode FROM t2 WHERE Population > 5000000); |
|
360 |
||
361 |
SELECT Name FROM t1 |
|
362 |
WHERE t1.Code IN ( |
|
363 |
SELECT t2.CountryCode FROM t2 WHERE Population > 5000000); |
|
364 |
||
365 |
drop table t1, t2; |
|
366 |
||
367 |
#
|
|
368 |
# Bug#33062: subquery in stored routine cause crash |
|
369 |
#
|
|
370 |
||
642.1.78
by Lee
enable subselect_sj2 |
371 |
# This dies: stored procedures are not supported by drizzle |
372 |
||
373 |
#CREATE TABLE t1(a INT); |
|
374 |
#CREATE TABLE t2(c INT); |
|
375 |
||
376 |
#DELIMITER //; |
|
377 |
||
378 |
#CREATE PROCEDURE p1(v1 int) |
|
379 |
#BEGIN |
|
380 |
# SELECT 1 FROM t1 WHERE a = v1 AND a IN (SELECT c FROM t2); |
|
381 |
#END |
|
382 |
#//
|
|
383 |
||
384 |
#CREATE PROCEDURE p2(v1 int) |
|
385 |
#BEGIN |
|
386 |
# SELECT 1 FROM t1 WHERE a IN (SELECT c FROM t2); |
|
387 |
#END |
|
388 |
#//
|
|
389 |
||
390 |
#CREATE PROCEDURE p3(v1 int) |
|
391 |
#BEGIN |
|
392 |
# SELECT 1 |
|
393 |
# FROM |
|
394 |
# t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08, |
|
395 |
# t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16, |
|
396 |
# t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24, |
|
397 |
# t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32, |
|
398 |
# t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40, |
|
399 |
# t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48, |
|
400 |
# t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56, |
|
401 |
# t1 t57,t1 t58,t1 t59,t1 t60 |
|
402 |
# WHERE t01.a IN (SELECT c FROM t2); |
|
403 |
#END |
|
404 |
#//
|
|
405 |
||
406 |
#CREATE PROCEDURE p4(v1 int) |
|
407 |
#BEGIN |
|
408 |
# SELECT 1 |
|
409 |
# FROM |
|
410 |
# t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08, |
|
411 |
# t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16, |
|
412 |
# t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24, |
|
413 |
# t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32, |
|
414 |
# t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40, |
|
415 |
# t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48, |
|
416 |
# t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56, |
|
417 |
# t1 t57,t1 t58,t1 t59,t1 t60 |
|
418 |
# WHERE t01.a = v1 AND t01.a IN (SELECT c FROM t2); |
|
419 |
#END |
|
420 |
#//
|
|
421 |
||
422 |
#DELIMITER ;// |
|
423 |
||
424 |
#CALL p1(1); |
|
425 |
#CALL p2(1); |
|
426 |
#CALL p3(1); |
|
427 |
#CALL p4(1); |
|
428 |
||
429 |
#DROP TABLE t1, t2; |
|
430 |
#DROP PROCEDURE p1; |
|
431 |
#DROP PROCEDURE p2; |
|
432 |
#DROP PROCEDURE p3; |
|
433 |
#DROP PROCEDURE p4; |