~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysql-test/t/subselect_sj2.test

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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);
 
32
 
 
33
# Try an InnoDB table with very long rowid
 
34
create table t3 (
 
35
   a int, 
 
36
   b int,
 
37
   key(b),
 
38
   pk1 char(200), pk2 char(200), pk3 char(200),
 
39
   primary key(pk1, pk2, pk3)
 
40
) engine=innodb;
 
41
insert into t3 select a,a, a,a,a from t0;
 
42
 
 
43
explain select * from t3 where b in (select a from t1);
 
44
select * from t3 where b in (select a from t1);
 
45
 
 
46
# Test overflow to MyISAM:
 
47
set @save_max_heap_table_size= @@max_heap_table_size;
 
48
set max_heap_table_size=16384;
 
49
set @save_join_buffer_size = @@join_buffer_size;
 
50
set join_buffer_size= 8000;
 
51
 
 
52
drop table t3;
 
53
create table t3 (
 
54
   a int, 
 
55
   b int,
 
56
   key(b),
 
57
   pk1 char(200), pk2 char(200),
 
58
   primary key(pk1, pk2)
 
59
) engine=innodb;
 
60
insert into t3 select 
 
61
  A.a + 10*B.a, A.a + 10*B.a, A.a + 10*B.a, A.a + 10*B.a 
 
62
from t0 A, t0 B where B.a <5;
 
63
 
 
64
explain select * from t3 where b in (select a from t0);
 
65
select * from t3 where b in (select A.a+B.a from t0 A, t0 B where B.a<5);
 
66
 
 
67
set join_buffer_size= @save_join_buffer_size;
 
68
set max_heap_table_size= @save_max_heap_table_size;
 
69
 
 
70
# O2I join orders, with shortcutting: 
 
71
explain select * from t1 where a in (select b from t2);
 
72
select * from t1;
 
73
select * from t1 where a in (select b from t2);
 
74
 
 
75
drop table t1, t2, t3;
 
76
# (no need for anything in range/index_merge/DS-MRR) 
 
77
 
 
78
#
 
79
# Test join buffering
 
80
#
 
81
set @save_join_buffer_size = @@join_buffer_size;
 
82
set join_buffer_size= 8000;
 
83
 
 
84
create table t1 (a int, filler1 binary(200), filler2 binary(200));
 
85
insert into t1 select a, 'filler123456', 'filler123456' from t0;
 
86
insert into t1 select a+10, 'filler123456', 'filler123456' from t0;
 
87
 
 
88
create table t2 as select * from t1;
 
89
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
 
90
 
 
91
insert into t1 values (2, 'duplicate ok', 'duplicate ok');
 
92
insert into t1 values (18, 'duplicate ok', 'duplicate ok');
 
93
 
 
94
insert into t2 values (3, 'duplicate ok', 'duplicate ok');
 
95
insert into t2 values (19, 'duplicate ok', 'duplicate ok');
 
96
 
 
97
explain select 
 
98
 a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z 
 
99
from t1 ot where a in (select a from t2 it);
 
100
select 
 
101
 a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z 
 
102
from t1 ot where a in (select a from t2 it);
 
103
 
 
104
explain select 
 
105
  a, mid(filler1, 1,10), length(filler1)=length(filler2) 
 
106
from t2 ot where a in (select a from t1 it);
 
107
select 
 
108
  a, mid(filler1, 1,10), length(filler1)=length(filler2) 
 
109
from t2 ot where a in (select a from t1 it);
 
110
 
 
111
# Now let the buffer overfill:
 
112
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
 
113
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
 
114
 
 
115
explain select 
 
116
 a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z 
 
117
from t1 ot where a in (select a from t2 it);
 
118
select 
 
119
 a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z 
 
120
from t1 ot where a in (select a from t2 it);
 
121
 
 
122
explain select 
 
123
  a, mid(filler1, 1,10), length(filler1)=length(filler2) 
 
124
from t2 ot where a in (select a from t1 it);
 
125
select 
 
126
  a, mid(filler1, 1,10), length(filler1)=length(filler2) 
 
127
from t2 ot where a in (select a from t1 it);
 
128
 
 
129
drop table t1, t2;
 
130
 
 
131
# Check ref access to tables inside the OJ nest inside the SJ nest
 
132
create table t1 (a int, b int, key(a));
 
133
create table t2 (a int, b int, key(a));
 
134
create table t3 (a int, b int, key(a));
 
135
 
 
136
insert into t1 select a,a from t0;
 
137
insert into t2 select a,a from t0;
 
138
insert into t3 select a,a from t0;
 
139
 
 
140
--echo t2 and t3 must be use 'ref', not 'ALL':
 
141
explain select * 
 
142
from t0 where a in
 
143
  (select t2.a+t3.a from t1 left join (t2 join t3) on t2.a=t1.a and t3.a=t1.a);
 
144
 
 
145
drop table t0, t1,t2,t3;
 
146
 
 
147
#
 
148
# Bug #27348: Assertion abort for a query with two subqueries to be flattened  
 
149
#  
 
150
CREATE TABLE t1 (
 
151
  ID int(11) NOT NULL auto_increment,
 
152
  Name char(35) NOT NULL default '',
 
153
  Country char(3) NOT NULL default '',
 
154
  Population int(11) NOT NULL default '0',
 
155
  PRIMARY KEY  (ID),
 
156
  INDEX (Population),
 
157
  INDEX (Country) 
 
158
);
 
159
CREATE TABLE t2 (
 
160
  Code char(3) NOT NULL default '',
 
161
  Name char(52) NOT NULL default '',
 
162
  SurfaceArea float(10,2) NOT NULL default '0.00',
 
163
  Population int(11) NOT NULL default '0',
 
164
  Capital int(11) default NULL,
 
165
  PRIMARY KEY  (Code),
 
166
  UNIQUE INDEX (Name),
 
167
  INDEX (Population)
 
168
);
 
169
CREATE TABLE t3 (
 
170
  Country char(3) NOT NULL default '',
 
171
  Language char(30) NOT NULL default '',
 
172
  Percentage float(3,1) NOT NULL default '0.0',
 
173
  PRIMARY KEY  (Country, Language),
 
174
  INDEX (Percentage)
 
175
);
 
176
 
 
177
--disable_query_log
 
178
INSERT INTO t1 VALUES
 
179
(1,'Kabul','AFG',1780000),(2,'Qandahar','AFG',237500),
 
180
(3,'Herat','AFG',186800),(4,'Mazar-e-Sharif','AFG',127800),
 
181
(5,'Amsterdam','NLD',731200),(6,'Rotterdam','NLD',593321),
 
182
(7,'Haag','NLD',440900),(8,'Utrecht','NLD',234323),
 
183
(9,'Eindhoven','NLD',201843),(10,'Tilburg','NLD',193238),
 
184
(11,'Groningen','NLD',172701),(12,'Breda','NLD',160398),
 
185
(13,'Apeldoorn','NLD',153491),(14,'Nijmegen','NLD',152463),
 
186
(15,'Enschede','NLD',149544),(16,'Haarlem','NLD',148772),
 
187
(17,'Almere','NLD',142465),(18,'Arnhem','NLD',138020),
 
188
(19,'Zaanstad','NLD',135621),(20,'´s-Hertogenbosch','NLD',129170),
 
189
(21,'Amersfoort','NLD',126270),(22,'Maastricht','NLD',122087),
 
190
(23,'Dordrecht','NLD',119811),(24,'Leiden','NLD',117196),
 
191
(25,'Haarlemmermeer','NLD',110722),(26,'Zoetermeer','NLD',110214),
 
192
(27,'Emmen','NLD',105853),(28,'Zwolle','NLD',105819),
 
193
(29,'Ede','NLD',101574),(30,'Delft','NLD',95268);
 
194
 
 
195
INSERT INTO t2 VALUES 
 
196
('AFG','Afghanistan',652090.00,22720000,1),
 
197
('NLD','Netherlands',41526.00,15864000,5),
 
198
('ANT','Netherlands Antilles',800.00,217000,33),
 
199
('ALB','Albania',28748.00,3401200,34),
 
200
('DZA','Algeria',2381741.00,31471000,35),
 
201
('ASM','American Samoa',199.00,68000,54),
 
202
('AND','Andorra',468.00,78000,55),
 
203
('AGO','Angola',1246700.00,12878000,56),
 
204
('AIA','Anguilla',96.00,8000,62),
 
205
('ATG','Antigua and Barbuda',442.00,68000,63),
 
206
('ARE','United Arab Emirates',83600.00,2441000,65),
 
207
('ARG','Argentina',2780400.00,37032000,69),
 
208
('ARM','Armenia',29800.00,3520000,126),
 
209
('ABW','Aruba',193.00,103000,129),
 
210
('AUS','Australia',7741220.00,18886000,135),
 
211
('AZE','Azerbaijan',86600.00,7734000,144);
 
212
 
 
213
INSERT INTO t3 VALUES 
 
214
('AFG','Pashto',52.4),('NLD','Dutch',95.6),
 
215
('ANT','Papiamento',86.2),('ALB','Albaniana',97.9),
 
216
('DZA','Arabic',86.0),('ASM','Samoan',90.6),
 
217
('AND','Spanish',44.6),('AGO','Ovimbundu',37.2),
 
218
('AIA','English',0.0),('ATG','Creole English',95.7),
 
219
('ARE','Arabic',42.0),('ARG','Spanish',96.8),
 
220
('ARM','Armenian',93.4),('ABW','Papiamento',76.7),
 
221
('AUS','English',81.2),('AZE','Azerbaijani',89.0),
 
222
('BHS','Creole English',89.7),('BHR','Arabic',67.7),
 
223
('BGD','Bengali',97.7),('BRB','Bajan',95.1),
 
224
('BEL','Dutch',59.2),('BLZ','English',50.8);
 
225
--enable_query_log
 
226
 
 
227
EXPLAIN
 
228
SELECT Name FROM t2 
 
229
  WHERE t2.Code IN (SELECT Country FROM t1 WHERE Population > 5000000)
 
230
        AND
 
231
        t2.Code IN (SELECT Country FROM t3 
 
232
                           WHERE Language='English' AND Percentage > 10 AND
 
233
                                 t2.Population > 100000);
 
234
 
 
235
DROP TABLE t1,t2,t3;
 
236
  
 
237
# BUG#30993:
 
238
CREATE TABLE t1 (
 
239
  Code char(3) NOT NULL DEFAULT '',
 
240
  Name char(52) NOT NULL DEFAULT '',
 
241
  Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL DEFAULT 'Asia',
 
242
  Region char(26) NOT NULL DEFAULT '',
 
243
  SurfaceArea float(10,2) NOT NULL DEFAULT '0.00',
 
244
  IndepYear smallint(6) DEFAULT NULL,
 
245
  Population int(11) NOT NULL DEFAULT '0',
 
246
  LifeExpectancy float(3,1) DEFAULT NULL,
 
247
  GNP float(10,2) DEFAULT NULL,
 
248
  GNPOld float(10,2) DEFAULT NULL,
 
249
  LocalName char(45) NOT NULL DEFAULT '',
 
250
  GovernmentForm char(45) NOT NULL DEFAULT '',
 
251
  HeadOfState char(60) DEFAULT NULL,
 
252
  Capital int(11) DEFAULT NULL,
 
253
  Code2 char(2) NOT NULL DEFAULT '',
 
254
  PRIMARY KEY (Code)
 
255
);
 
256
 
 
257
CREATE TABLE t2 (
 
258
  ID int(11) NOT NULL AUTO_INCREMENT,
 
259
  Name char(35) NOT NULL DEFAULT '',
 
260
  CountryCode char(3) NOT NULL DEFAULT '',
 
261
  District char(20) NOT NULL DEFAULT '',
 
262
  Population int(11) NOT NULL DEFAULT '0',
 
263
  PRIMARY KEY (ID),
 
264
  KEY CountryCode (CountryCode)
 
265
);
 
266
 
 
267
--echo Fill the table with test data
 
268
--disable_query_log
 
269
insert into t2 (ID, Name, CountryCode, Population) values 
 
270
(1,'Kabul','AFG',1780000), (2,'Qandahar','AFG',237500), (3,'Herat','AFG',186800),
 
271
(4,'Mazar-e-Sharif','AFG',127800), (33,'Willemstad','ANT',2345), (34,'Tirana','ALB',270000),
 
272
(55,'Andorra la Vella','AND',21189), (61,'South Hill','AIA',961), (62,'The Valley','AIA',595),
 
273
(63,'Saint John�s','ATG',24000), (64,'Dubai','ARE',669181), (65,'Abu Dhabi','ARE',398695),
 
274
(66,'Sharja','ARE',320095), (67,'al-Ayn','ARE',225970), (68,'Ajman','ARE',114395),
 
275
(126,'Yerevan','ARM',1248700), (127,'Gjumri','ARM',211700), (128,'Vanadzor','ARM',172700),
 
276
(129,'Oranjestad','ABW',29034), (144,'Baku','AZE',1787800), (145,'G�nc�','AZE',299300),
 
277
(146,'Sumqayit','AZE',283000), (147,'Ming��evir','AZE',93900), (148,'Nassau','BHS',172000),
 
278
(149,'al-Manama','BHR',148000), (150,'Dhaka','BGD',3612850), (151,'Chittagong','BGD',1392860),
 
279
(152,'Khulna','BGD',663340), (153,'Rajshahi','BGD',294056), (154,'Narayanganj','BGD',202134),
 
280
(155,'Rangpur','BGD',191398), (156,'Mymensingh','BGD',188713), (157,'Barisal','BGD',170232),
 
281
(158,'Tungi','BGD',168702), (159,'Jessore','BGD',139710), (160,'Comilla','BGD',135313),
 
282
(161,'Nawabganj','BGD',130577), (162,'Dinajpur','BGD',127815), (163,'Bogra','BGD',120170),
 
283
(164,'Sylhet','BGD',117396), (165,'Brahmanbaria','BGD',109032), (166,'Tangail','BGD',106004),
 
284
(167,'Jamalpur','BGD',103556), (168,'Pabna','BGD',103277), (169,'Naogaon','BGD',101266),
 
285
(170,'Sirajganj','BGD',99669), (171,'Narsinghdi','BGD',98342), (172,'Saidpur','BGD',96777),
 
286
(173,'Gazipur','BGD',96717), (174,'Bridgetown','BRB',6070), (175,'Antwerpen','BEL',446525),
 
287
(176,'Gent','BEL',224180), (177,'Charleroi','BEL',200827), (178,'Li�ge','BEL',185639),
 
288
(179,'Bruxelles [Brussel]','BEL',133859), (180,'Brugge','BEL',116246), (181,'Schaerbeek','BEL',105692),
 
289
(182,'Namur','BEL',105419), (183,'Mons','BEL',90935), (184,'Belize City','BLZ',55810),
 
290
(185,'Belmopan','BLZ',7105), (190,'Saint George','BMU',1800), (191,'Hamilton','BMU',1200),
 
291
(192,'Thimphu','BTN',22000), (201,'Sarajevo','BIH',360000), (202,'Banja Luka','BIH',143079),
 
292
(203,'Zenica','BIH',96027), (538,'Bandar Seri Begawan','BRN',21484), (539,'Sofija','BGR',1122302),
 
293
(540,'Plovdiv','BGR',342584), (541,'Varna','BGR',299801), (542,'Burgas','BGR',195255),
 
294
(543,'Ruse','BGR',166467), (544,'Stara Zagora','BGR',147939), (545,'Pleven','BGR',121952),
 
295
(546,'Sliven','BGR',105530), (547,'Dobric','BGR',100399), (548,'�umen','BGR',94686),
 
296
(553,'George Town','CYM',19600), (584,'San Jos�','CRI',339131), (1523,'Wien','AUT',1608144),
 
297
(1524,'Graz','AUT',240967), (1525,'Linz','AUT',188022), (1526,'Salzburg','AUT',144247),
 
298
(1527,'Innsbruck','AUT',111752), (1528,'Klagenfurt','AUT',91141), (1810,'Montr�al','CAN',1016376),
 
299
(1811,'Calgary','CAN',768082), (1812,'Toronto','CAN',688275), (1813,'North York','CAN',622632),
 
300
(1814,'Winnipeg','CAN',618477), (1815,'Edmonton','CAN',616306), (1816,'Mississauga','CAN',608072),
 
301
(1817,'Scarborough','CAN',594501), (1818,'Vancouver','CAN',514008), (1819,'Etobicoke','CAN',348845),
 
302
(1820,'London','CAN',339917), (1821,'Hamilton','CAN',335614), (1822,'Ottawa','CAN',335277),
 
303
(1823,'Laval','CAN',330393), (1824,'Surrey','CAN',304477), (1825,'Brampton','CAN',296711),
 
304
(1826,'Windsor','CAN',207588), (1827,'Saskatoon','CAN',193647), (1828,'Kitchener','CAN',189959),
 
305
(1829,'Markham','CAN',189098), (1830,'Regina','CAN',180400), (1831,'Burnaby','CAN',179209),
 
306
(1832,'Qu�bec','CAN',167264), (1833,'York','CAN',154980), (1834,'Richmond','CAN',148867),
 
307
(1835,'Vaughan','CAN',147889), (1836,'Burlington','CAN',145150), (1837,'Oshawa','CAN',140173),
 
308
(1838,'Oakville','CAN',139192), (1839,'Saint Catharines','CAN',136216), (1840,'Longueuil','CAN',127977),
 
309
(1841,'Richmond Hill','CAN',116428), (1842,'Thunder Bay','CAN',115913), (1843,'Nepean','CAN',115100),
 
310
(1844,'Cape Breton','CAN',114733), (1845,'East York','CAN',114034), (1846,'Halifax','CAN',113910),
 
311
(1847,'Cambridge','CAN',109186), (1848,'Gloucester','CAN',107314), (1849,'Abbotsford','CAN',105403),
 
312
(1850,'Guelph','CAN',103593), (1851,'Saint John�s','CAN',101936), (1852,'Coquitlam','CAN',101820),
 
313
(1853,'Saanich','CAN',101388), (1854,'Gatineau','CAN',100702), (1855,'Delta','CAN',95411),
 
314
(1856,'Sudbury','CAN',92686), (1857,'Kelowna','CAN',89442), (1858,'Barrie','CAN',89269),
 
315
(1890,'Shanghai','CHN',9696300), (1891,'Peking','CHN',7472000), (1892,'Chongqing','CHN',6351600),
 
316
(1893,'Tianjin','CHN',5286800), (1894,'Wuhan','CHN',4344600), (1895,'Harbin','CHN',4289800),
 
317
(1896,'Shenyang','CHN',4265200), (1897,'Kanton [Guangzhou]','CHN',4256300), (1898,'Chengdu','CHN',3361500),
 
318
(1899,'Nanking [Nanjing]','CHN',2870300), (1900,'Changchun','CHN',2812000), (1901,'Xi�an','CHN',2761400),
 
319
(1902,'Dalian','CHN',2697000), (1903,'Qingdao','CHN',2596000), (1904,'Jinan','CHN',2278100),
 
320
(1905,'Hangzhou','CHN',2190500), (1906,'Zhengzhou','CHN',2107200), (1907,'Shijiazhuang','CHN',2041500),
 
321
(1908,'Taiyuan','CHN',1968400), (1909,'Kunming','CHN',1829500), (1910,'Changsha','CHN',1809800),
 
322
(1911,'Nanchang','CHN',1691600), (1912,'Fuzhou','CHN',1593800), (1913,'Lanzhou','CHN',1565800),
 
323
(1914,'Guiyang','CHN',1465200), (1915,'Ningbo','CHN',1371200), (1916,'Hefei','CHN',1369100),
 
324
(1917,'Urumt�i [�r�mqi]','CHN',1310100), (1918,'Anshan','CHN',1200000), (1919,'Fushun','CHN',1200000),
 
325
(1920,'Nanning','CHN',1161800), (1921,'Zibo','CHN',1140000), (1922,'Qiqihar','CHN',1070000),
 
326
(1923,'Jilin','CHN',1040000), (1924,'Tangshan','CHN',1040000), (1925,'Baotou','CHN',980000),
 
327
(1926,'Shenzhen','CHN',950500), (1927,'Hohhot','CHN',916700), (1928,'Handan','CHN',840000),
 
328
(1929,'Wuxi','CHN',830000), (1930,'Xuzhou','CHN',810000), (1931,'Datong','CHN',800000),
 
329
(1932,'Yichun','CHN',800000), (1933,'Benxi','CHN',770000), (1934,'Luoyang','CHN',760000),
 
330
(1935,'Suzhou','CHN',710000), (1936,'Xining','CHN',700200), (1937,'Huainan','CHN',700000),
 
331
(1938,'Jixi','CHN',683885), (1939,'Daqing','CHN',660000), (1940,'Fuxin','CHN',640000),
 
332
(1941,'Amoy [Xiamen]','CHN',627500), (1942,'Liuzhou','CHN',610000), (1943,'Shantou','CHN',580000),
 
333
(1944,'Jinzhou','CHN',570000), (1945,'Mudanjiang','CHN',570000), (1946,'Yinchuan','CHN',544500),
 
334
(1947,'Changzhou','CHN',530000), (1948,'Zhangjiakou','CHN',530000), (1949,'Dandong','CHN',520000),
 
335
(1950,'Hegang','CHN',520000), (1951,'Kaifeng','CHN',510000), (1952,'Jiamusi','CHN',493409),
 
336
(1953,'Liaoyang','CHN',492559), (1954,'Hengyang','CHN',487148), (1955,'Baoding','CHN',483155),
 
337
(1956,'Hunjiang','CHN',482043), (1957,'Xinxiang','CHN',473762), (1958,'Huangshi','CHN',457601),
 
338
(1959,'Haikou','CHN',454300), (1960,'Yantai','CHN',452127), (1961,'Bengbu','CHN',449245),
 
339
(1962,'Xiangtan','CHN',441968), (1963,'Weifang','CHN',428522), (1964,'Wuhu','CHN',425740),
 
340
(1965,'Pingxiang','CHN',425579), (1966,'Yingkou','CHN',421589), (1967,'Anyang','CHN',420332),
 
341
(1968,'Panzhihua','CHN',415466), (1969,'Pingdingshan','CHN',410775), (1970,'Xiangfan','CHN',410407),
 
342
(1971,'Zhuzhou','CHN',409924), (1972,'Jiaozuo','CHN',409100), (1973,'Wenzhou','CHN',401871),
 
343
(1974,'Zhangjiang','CHN',400997), (1975,'Zigong','CHN',393184), (1976,'Shuangyashan','CHN',386081),
 
344
(1977,'Zaozhuang','CHN',380846), (1978,'Yakeshi','CHN',377869), (1979,'Yichang','CHN',371601),
 
345
(1980,'Zhenjiang','CHN',368316), (1981,'Huaibei','CHN',366549), (1982,'Qinhuangdao','CHN',364972),
 
346
(1983,'Guilin','CHN',364130), (1984,'Liupanshui','CHN',363954), (1985,'Panjin','CHN',362773),
 
347
(1986,'Yangquan','CHN',362268), (1987,'Jinxi','CHN',357052), (1988,'Liaoyuan','CHN',354141),
 
348
(1989,'Lianyungang','CHN',354139), (1990,'Xianyang','CHN',352125), (1991,'Tai�an','CHN',350696),
 
349
(1992,'Chifeng','CHN',350077), (1993,'Shaoguan','CHN',350043), (1994,'Nantong','CHN',343341),
 
350
(1995,'Leshan','CHN',341128), (1996,'Baoji','CHN',337765), (1997,'Linyi','CHN',324720),
 
351
(1998,'Tonghua','CHN',324600), (1999,'Siping','CHN',317223), (2000,'Changzhi','CHN',317144),
 
352
(2001,'Tengzhou','CHN',315083), (2002,'Chaozhou','CHN',313469), (2003,'Yangzhou','CHN',312892),
 
353
(2004,'Dongwan','CHN',308669), (2005,'Ma�anshan','CHN',305421), (2006,'Foshan','CHN',303160),
 
354
(2007,'Yueyang','CHN',302800), (2008,'Xingtai','CHN',302789), (2009,'Changde','CHN',301276),
 
355
(2010,'Shihezi','CHN',299676), (2011,'Yancheng','CHN',296831), (2012,'Jiujiang','CHN',291187),
 
356
(2013,'Dongying','CHN',281728), (2014,'Shashi','CHN',281352), (2015,'Xintai','CHN',281248),
 
357
(2016,'Jingdezhen','CHN',281183), (2017,'Tongchuan','CHN',280657), (2018,'Zhongshan','CHN',278829),
 
358
(2019,'Shiyan','CHN',273786), (2020,'Tieli','CHN',265683), (2021,'Jining','CHN',265248),
 
359
(2022,'Wuhai','CHN',264081), (2023,'Mianyang','CHN',262947), (2024,'Luzhou','CHN',262892),
 
360
(2025,'Zunyi','CHN',261862), (2026,'Shizuishan','CHN',257862), (2027,'Neijiang','CHN',256012),
 
361
(2028,'Tongliao','CHN',255129), (2029,'Tieling','CHN',254842), (2030,'Wafangdian','CHN',251733),
 
362
(2031,'Anqing','CHN',250718), (2032,'Shaoyang','CHN',247227), (2033,'Laiwu','CHN',246833),
 
363
(2034,'Chengde','CHN',246799), (2035,'Tianshui','CHN',244974), (2036,'Nanyang','CHN',243303),
 
364
(2037,'Cangzhou','CHN',242708), (2038,'Yibin','CHN',241019), (2039,'Huaiyin','CHN',239675),
 
365
(2040,'Dunhua','CHN',235100), (2041,'Yanji','CHN',230892), (2042,'Jiangmen','CHN',230587),
 
366
(2043,'Tongling','CHN',228017), (2044,'Suihua','CHN',227881), (2045,'Gongziling','CHN',226569),
 
367
(2046,'Xiantao','CHN',222884), (2047,'Chaoyang','CHN',222394), (2048,'Ganzhou','CHN',220129),
 
368
(2049,'Huzhou','CHN',218071), (2050,'Baicheng','CHN',217987), (2051,'Shangzi','CHN',215373),
 
369
(2052,'Yangjiang','CHN',215196), (2053,'Qitaihe','CHN',214957), (2054,'Gejiu','CHN',214294),
 
370
(2055,'Jiangyin','CHN',213659), (2056,'Hebi','CHN',212976), (2057,'Jiaxing','CHN',211526),
 
371
(2058,'Wuzhou','CHN',210452), (2059,'Meihekou','CHN',209038), (2060,'Xuchang','CHN',208815),
 
372
(2061,'Liaocheng','CHN',207844), (2062,'Haicheng','CHN',205560), (2063,'Qianjiang','CHN',205504),
 
373
(2064,'Baiyin','CHN',204970), (2065,'Bei�an','CHN',204899), (2066,'Yixing','CHN',200824),
 
374
(2067,'Laizhou','CHN',198664), (2068,'Qaramay','CHN',197602), (2069,'Acheng','CHN',197595),
 
375
(2070,'Dezhou','CHN',195485), (2071,'Nanping','CHN',195064), (2072,'Zhaoqing','CHN',194784),
 
376
(2073,'Beipiao','CHN',194301), (2074,'Fengcheng','CHN',193784), (2075,'Fuyu','CHN',192981),
 
377
(2076,'Xinyang','CHN',192509), (2077,'Dongtai','CHN',192247), (2078,'Yuci','CHN',191356),
 
378
(2079,'Honghu','CHN',190772), (2080,'Ezhou','CHN',190123), (2081,'Heze','CHN',189293),
 
379
(2082,'Daxian','CHN',188101), (2083,'Linfen','CHN',187309), (2084,'Tianmen','CHN',186332),
 
380
(2085,'Yiyang','CHN',185818), (2086,'Quanzhou','CHN',185154), (2087,'Rizhao','CHN',185048),
 
381
(2088,'Deyang','CHN',182488), (2089,'Guangyuan','CHN',182241), (2090,'Changshu','CHN',181805),
 
382
(2091,'Zhangzhou','CHN',181424), (2092,'Hailar','CHN',180650), (2093,'Nanchong','CHN',180273),
 
383
(2094,'Jiutai','CHN',180130), (2095,'Zhaodong','CHN',179976), (2096,'Shaoxing','CHN',179818),
 
384
(2097,'Fuyang','CHN',179572), (2098,'Maoming','CHN',178683), (2099,'Qujing','CHN',178669),
 
385
(2100,'Ghulja','CHN',177193), (2101,'Jiaohe','CHN',176367), (2102,'Puyang','CHN',175988),
 
386
(2103,'Huadian','CHN',175873), (2104,'Jiangyou','CHN',175753), (2105,'Qashqar','CHN',174570),
 
387
(2106,'Anshun','CHN',174142), (2107,'Fuling','CHN',173878), (2108,'Xinyu','CHN',173524),
 
388
(2109,'Hanzhong','CHN',169930), (2110,'Danyang','CHN',169603), (2111,'Chenzhou','CHN',169400),
 
389
(2112,'Xiaogan','CHN',166280), (2113,'Shangqiu','CHN',164880), (2114,'Zhuhai','CHN',164747),
 
390
(2115,'Qingyuan','CHN',164641), (2116,'Aqsu','CHN',164092), (2117,'Jining','CHN',163552),
 
391
(2118,'Xiaoshan','CHN',162930), (2119,'Zaoyang','CHN',162198), (2120,'Xinghua','CHN',161910),
 
392
(2121,'Hami','CHN',161315), (2122,'Huizhou','CHN',161023), (2123,'Jinmen','CHN',160794),
 
393
(2124,'Sanming','CHN',160691), (2125,'Ulanhot','CHN',159538), (2126,'Korla','CHN',159344),
 
394
(2127,'Wanxian','CHN',156823), (2128,'Rui�an','CHN',156468), (2129,'Zhoushan','CHN',156317),
 
395
(2130,'Liangcheng','CHN',156307), (2131,'Jiaozhou','CHN',153364), (2132,'Taizhou','CHN',152442),
 
396
(2133,'Suzhou','CHN',151862), (2134,'Yichun','CHN',151585), (2135,'Taonan','CHN',150168),
 
397
(2136,'Pingdu','CHN',150123), (2137,'Ji�an','CHN',148583), (2138,'Longkou','CHN',148362),
 
398
(2139,'Langfang','CHN',148105), (2140,'Zhoukou','CHN',146288), (2141,'Suining','CHN',146086),
 
399
(2142,'Yulin','CHN',144467), (2143,'Jinhua','CHN',144280), (2144,'Liu�an','CHN',144248),
 
400
(2145,'Shuangcheng','CHN',142659), (2146,'Suizhou','CHN',142302), (2147,'Ankang','CHN',142170),
 
401
(2148,'Weinan','CHN',140169), (2149,'Longjing','CHN',139417), (2150,'Da�an','CHN',138963),
 
402
(2151,'Lengshuijiang','CHN',137994), (2152,'Laiyang','CHN',137080), (2153,'Xianning','CHN',136811),
 
403
(2154,'Dali','CHN',136554), (2155,'Anda','CHN',136446), (2156,'Jincheng','CHN',136396),
 
404
(2157,'Longyan','CHN',134481), (2158,'Xichang','CHN',134419), (2159,'Wendeng','CHN',133910),
 
405
(2160,'Hailun','CHN',133565), (2161,'Binzhou','CHN',133555), (2162,'Linhe','CHN',133183),
 
406
(2163,'Wuwei','CHN',133101), (2164,'Duyun','CHN',132971), (2165,'Mishan','CHN',132744),
 
407
(2166,'Shangrao','CHN',132455), (2167,'Changji','CHN',132260), (2168,'Meixian','CHN',132156),
 
408
(2169,'Yushu','CHN',131861), (2170,'Tiefa','CHN',131807), (2171,'Huai�an','CHN',131149),
 
409
(2172,'Leiyang','CHN',130115), (2173,'Zalantun','CHN',130031), (2174,'Weihai','CHN',128888),
 
410
(2175,'Loudi','CHN',128418), (2176,'Qingzhou','CHN',128258), (2177,'Qidong','CHN',126872),
 
411
(2178,'Huaihua','CHN',126785), (2179,'Luohe','CHN',126438), (2180,'Chuzhou','CHN',125341),
 
412
(2181,'Kaiyuan','CHN',124219), (2182,'Linqing','CHN',123958), (2183,'Chaohu','CHN',123676),
 
413
(2184,'Laohekou','CHN',123366), (2185,'Dujiangyan','CHN',123357), (2186,'Zhumadian','CHN',123232),
 
414
(2187,'Linchuan','CHN',121949), (2188,'Jiaonan','CHN',121397), (2189,'Sanmenxia','CHN',120523),
 
415
(2190,'Heyuan','CHN',120101), (2191,'Manzhouli','CHN',120023), (2192,'Lhasa','CHN',120000),
 
416
(2193,'Lianyuan','CHN',118858), (2194,'Kuytun','CHN',118553), (2195,'Puqi','CHN',117264),
 
417
(2196,'Hongjiang','CHN',116188), (2197,'Qinzhou','CHN',114586), (2198,'Renqiu','CHN',114256),
 
418
(2199,'Yuyao','CHN',114065), (2200,'Guigang','CHN',114025), (2201,'Kaili','CHN',113958),
 
419
(2202,'Yan�an','CHN',113277), (2203,'Beihai','CHN',112673), (2204,'Xuangzhou','CHN',112673),
 
420
(2205,'Quzhou','CHN',112373), (2206,'Yong�an','CHN',111762), (2207,'Zixing','CHN',110048),
 
421
(2208,'Liyang','CHN',109520), (2209,'Yizheng','CHN',109268), (2210,'Yumen','CHN',109234),
 
422
(2211,'Liling','CHN',108504), (2212,'Yuncheng','CHN',108359), (2213,'Shanwei','CHN',107847),
 
423
(2214,'Cixi','CHN',107329), (2215,'Yuanjiang','CHN',107004), (2216,'Bozhou','CHN',106346),
 
424
(2217,'Jinchang','CHN',105287), (2218,'Fu�an','CHN',105265), (2219,'Suqian','CHN',105021),
 
425
(2220,'Shishou','CHN',104571), (2221,'Hengshui','CHN',104269), (2222,'Danjiangkou','CHN',103211),
 
426
(2223,'Fujin','CHN',103104), (2224,'Sanya','CHN',102820), (2225,'Guangshui','CHN',102770),
 
427
(2226,'Huangshan','CHN',102628), (2227,'Xingcheng','CHN',102384), (2228,'Zhucheng','CHN',102134),
 
428
(2229,'Kunshan','CHN',102052), (2230,'Haining','CHN',100478), (2231,'Pingliang','CHN',99265),
 
429
(2232,'Fuqing','CHN',99193), (2233,'Xinzhou','CHN',98667), (2234,'Jieyang','CHN',98531),
 
430
(2235,'Zhangjiagang','CHN',97994), (2236,'Tong Xian','CHN',97168), (2237,'Ya�an','CHN',95900),
 
431
(2238,'Jinzhou','CHN',95761), (2239,'Emeishan','CHN',94000), (2240,'Enshi','CHN',93056),
 
432
(2241,'Bose','CHN',93009), (2242,'Yuzhou','CHN',92889), (2243,'Kaiyuan','CHN',91999),
 
433
(2244,'Tumen','CHN',91471), (2245,'Putian','CHN',91030), (2246,'Linhai','CHN',90870),
 
434
(2247,'Xilin Hot','CHN',90646), (2248,'Shaowu','CHN',90286), (2249,'Junan','CHN',90222),
 
435
(2250,'Huaying','CHN',89400), (2251,'Pingyi','CHN',89373), (2252,'Huangyan','CHN',89288),
 
436
(2413,'La Habana','CUB',2256000), (2414,'Santiago de Cuba','CUB',433180), (2415,'Camag�ey','CUB',298726),
 
437
(2416,'Holgu�n','CUB',249492), (2417,'Santa Clara','CUB',207350), (2418,'Guant�namo','CUB',205078),
 
438
(2419,'Pinar del R�o','CUB',142100), (2420,'Bayamo','CUB',141000), (2421,'Cienfuegos','CUB',132770),
 
439
(2422,'Victoria de las Tunas','CUB',132350), (2423,'Matanzas','CUB',123273), (2424,'Manzanillo','CUB',109350),
 
440
(2425,'Sancti-Sp�ritus','CUB',100751), (2426,'Ciego de �vila','CUB',98505), (2430,'Nicosia','CYP',195000),
 
441
(2431,'Limassol','CYP',154400), (3245,'Z�rich','CHE',336800), (3246,'Geneve','CHE',173500),
 
442
(3247,'Basel','CHE',166700), (3248,'Bern','CHE',122700), (3249,'Lausanne','CHE',114500),
 
443
(3339,'Praha','CZE',1181126), (3340,'Brno','CZE',381862), (3341,'Ostrava','CZE',320041),
 
444
(3342,'Plzen','CZE',166759), (3343,'Olomouc','CZE',102702), (3344,'Liberec','CZE',99155),
 
445
(3345,'Cesk� Budejovice','CZE',98186), (3346,'Hradec Kr�lov�','CZE',98080), (3347,'�st� nad Labem','CZE',95491),
 
446
(3348,'Pardubice','CZE',91309), (3520,'Minsk','BLR',1674000), (3521,'Gomel','BLR',475000),
 
447
(3522,'Mogiljov','BLR',356000), (3523,'Vitebsk','BLR',340000), (3524,'Grodno','BLR',302000),
 
448
(3525,'Brest','BLR',286000), (3526,'Bobruisk','BLR',221000), (3527,'Baranovit�i','BLR',167000),
 
449
(3528,'Borisov','BLR',151000), (3529,'Pinsk','BLR',130000), (3530,'Or�a','BLR',124000),
 
450
(3531,'Mozyr','BLR',110000), (3532,'Novopolotsk','BLR',106000), (3533,'Lida','BLR',101000),
 
451
(3534,'Soligorsk','BLR',101000), (3535,'Molodet�no','BLR',97000);
 
452
 
 
453
insert into t1 (Code, Name, Continent) values 
 
454
('AFG','Afghanistan','Asia'), ('ANT','Netherlands Antilles','North America'),
 
455
('ALB','Albania','Europe'), ('AND','Andorra','Europe'),
 
456
('AIA','Anguilla','North America'), ('ATG','Antigua and Barbuda','North America'),
 
457
('ARE','United Arab Emirates','Asia'), ('ARM','Armenia','Asia'),
 
458
('ABW','Aruba','North America'), ('AZE','Azerbaijan','Asia'),
 
459
('BHS','Bahamas','North America'), ('BHR','Bahrain','Asia'),
 
460
('BGD','Bangladesh','Asia'), ('BRB','Barbados','North America'),
 
461
('BEL','Belgium','Europe'), ('BLZ','Belize','North America'),
 
462
('BMU','Bermuda','North America'), ('BTN','Bhutan','Asia'),
 
463
('BIH','Bosnia and Herzegovina','Europe'), ('BRN','Brunei','Asia'),
 
464
('BGR','Bulgaria','Europe'), ('CYM','Cayman Islands','North America'),
 
465
('CRI','Costa Rica','North America'), ('AUT','Austria','Europe'),
 
466
('CAN','Canada','North America'), ('CHN','China','Asia'),
 
467
('CUB','Cuba','North America'), ('CYP','Cyprus','Asia'),
 
468
('CHE','Switzerland','Europe'), ('CZE','Czech Republic','Europe'),
 
469
('BLR','Belarus','Europe');
 
470
update t2 set population=6000000 where Name in ('Wien', 'Vancouver', 'Praha');
 
471
--enable_query_log
 
472
 
 
473
--echo This must not use LooseScan:
 
474
EXPLAIN SELECT Name FROM t1 
 
475
  WHERE t1.Code IN (
 
476
    SELECT t2.CountryCode FROM t2 WHERE Population > 5000000);
 
477
 
 
478
SELECT Name FROM t1 
 
479
  WHERE t1.Code IN (
 
480
    SELECT t2.CountryCode FROM t2 WHERE Population > 5000000);
 
481
 
 
482
drop table t1, t2;
 
483
 
 
484
#
 
485
# Bug#33062: subquery in stored routine cause crash
 
486
#
 
487
 
 
488
CREATE TABLE t1(a INT);
 
489
CREATE TABLE t2(c INT);
 
490
 
 
491
DELIMITER //;
 
492
 
 
493
CREATE PROCEDURE p1(v1 int)
 
494
BEGIN
 
495
  SELECT 1 FROM t1 WHERE a = v1 AND a IN (SELECT c FROM t2);
 
496
END
 
497
//
 
498
 
 
499
CREATE PROCEDURE p2(v1 int)
 
500
BEGIN
 
501
  SELECT 1 FROM t1 WHERE a IN (SELECT c FROM t2);
 
502
END
 
503
//
 
504
 
 
505
CREATE PROCEDURE p3(v1 int)
 
506
BEGIN
 
507
  SELECT 1 
 
508
  FROM 
 
509
    t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08,
 
510
    t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16,
 
511
    t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24,
 
512
    t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32,
 
513
    t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40,
 
514
    t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48,
 
515
    t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56,
 
516
    t1 t57,t1 t58,t1 t59,t1 t60
 
517
  WHERE t01.a IN (SELECT c FROM t2);
 
518
END
 
519
//
 
520
 
 
521
CREATE PROCEDURE p4(v1 int)
 
522
BEGIN
 
523
  SELECT 1 
 
524
  FROM 
 
525
    t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08,
 
526
    t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16,
 
527
    t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24,
 
528
    t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32,
 
529
    t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40,
 
530
    t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48,
 
531
    t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56,
 
532
    t1 t57,t1 t58,t1 t59,t1 t60
 
533
  WHERE t01.a = v1 AND t01.a IN (SELECT c FROM t2);
 
534
END
 
535
//
 
536
 
 
537
DELIMITER ;//
 
538
 
 
539
CALL p1(1);
 
540
CALL p2(1);
 
541
CALL p3(1);
 
542
CALL p4(1);
 
543
 
 
544
DROP TABLE t1, t2;
 
545
DROP PROCEDURE p1;
 
546
DROP PROCEDURE p2;
 
547
DROP PROCEDURE p3;
 
548
DROP PROCEDURE p4;