~drizzle-trunk/drizzle/development

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
1183.3.1 by Lee Bieber
Add test case for MySQL BUG #42742: crash in setup_sj_materialization, Copy_field::set
367
--echo #
368
--echo # MySQL BUG #42742: crash in setup_sj_materialization, Copy_field::set
369
--echo # 
370
create table t3 ( c1 date) engine=innodb;
371
insert into t3 values ('2009-10-22'),('2142-10-22');
372
create table t2 (c1 tinytext,c2 text,c6 timestamp) engine=innodb;
373
select * from t3;
2141.4.2 by Andrew Hutchings
Implicit joins of the form "SELECT * FROM t1, t2" without WHERE or ON now error.
374
explain select 1 from t2 where  c2 in (select 1 from t3 CROSS JOIN t2) and  c1 in (select convert(c6,char(1)) from t2); 
1183.3.1 by Lee Bieber
Add test case for MySQL BUG #42742: crash in setup_sj_materialization, Copy_field::set
375
drop table t2, t3;
376
1 by brian
clean slate
377
#
378
# Bug#33062: subquery in stored routine cause crash
379
#
380
642.1.78 by Lee
enable subselect_sj2
381
# This dies: stored procedures are not supported by drizzle
382
383
#CREATE TABLE t1(a INT);
384
#CREATE TABLE t2(c INT);
385
386
#DELIMITER //;
387
388
#CREATE PROCEDURE p1(v1 int)
389
#BEGIN
390
#  SELECT 1 FROM t1 WHERE a = v1 AND a IN (SELECT c FROM t2);
391
#END
392
#//
393
394
#CREATE PROCEDURE p2(v1 int)
395
#BEGIN
396
#  SELECT 1 FROM t1 WHERE a IN (SELECT c FROM t2);
397
#END
398
#//
399
400
#CREATE PROCEDURE p3(v1 int)
401
#BEGIN
402
#  SELECT 1 
403
#  FROM 
404
#    t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08,
405
#    t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16,
406
#    t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24,
407
#    t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32,
408
#    t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40,
409
#    t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48,
410
#    t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56,
411
#    t1 t57,t1 t58,t1 t59,t1 t60
412
#  WHERE t01.a IN (SELECT c FROM t2);
413
#END
414
#//
415
416
#CREATE PROCEDURE p4(v1 int)
417
#BEGIN
418
#  SELECT 1 
419
#  FROM 
420
#    t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08,
421
#    t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16,
422
#    t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24,
423
#    t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32,
424
#    t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40,
425
#    t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48,
426
#    t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56,
427
#    t1 t57,t1 t58,t1 t59,t1 t60
428
#  WHERE t01.a = v1 AND t01.a IN (SELECT c FROM t2);
429
#END
430
#//
431
432
#DELIMITER ;//
433
434
#CALL p1(1);
435
#CALL p2(1);
436
#CALL p3(1);
437
#CALL p4(1);
438
439
#DROP TABLE t1, t2;
440
#DROP PROCEDURE p1;
441
#DROP PROCEDURE p2;
442
#DROP PROCEDURE p3;
443
#DROP PROCEDURE p4;