~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/subselect_sj2.test

  • Committer: Monty Taylor
  • Date: 2008-09-15 00:46:33 UTC
  • mfrom: (383.1.55 client-split)
  • Revision ID: monty@inaugust.com-20080915004633-fmjw27fi41cxs35w
Merged from client-split.

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
 
#Bug 310344: This dies because pk* char(200) is too big. Changed pk* to char(100)
34
 
#due to UTF8 column sizes.
35
 
# Try an InnoDB table with very long rowid
36
 
create table t3 (
37
 
   a int, 
38
 
   b int,
39
 
   key(b),
40
 
   pk1 char(100), pk2 char(100), pk3 char(100),
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
 
 
53
 
#Bug 310344: This dies because pk* char(200) is too big. Based on UTF8 colummns.
54
 
#Changed pk* to char(100)
55
 
drop table t3;
56
 
create table t3 (
57
 
   a int, 
58
 
   b int,
59
 
   key(b),
60
 
   pk1 char(100), pk2 char(100),
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;
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));
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
 
 
101
 
#This dies because: changed ot to t0
102
 
explain select 
103
 
 a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z 
104
 
from t1 t0 where a in (select a from t2 it);
105
 
select 
106
 
 a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z 
107
 
from t1 t0 where a in (select a from t2 it);
108
 
 
109
 
explain select 
110
 
  a, mid(filler1, 1,10), length(filler1)=length(filler2) 
111
 
from t2 t0 where a in (select a from t1 it);
112
 
select 
113
 
  a, mid(filler1, 1,10), length(filler1)=length(filler2) 
114
 
from t2 t0 where a in (select a from t1 it);
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 
122
 
from t1 t0 where a in (select a from t2 it);
123
 
select 
124
 
 a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z 
125
 
from t1 t0 where a in (select a from t2 it);
126
 
 
127
 
explain select 
128
 
  a, mid(filler1, 1,10), length(filler1)=length(filler2) 
129
 
from t2 t0 where a in (select a from t1 it);
130
 
select 
131
 
  a, mid(filler1, 1,10), length(filler1)=length(filler2) 
132
 
from t2 t0 where a in (select a from t1 it);
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  
154
 
# Changed int(11) to int. 
155
 
CREATE TABLE t1 (
156
 
  ID int NOT NULL auto_increment,
157
 
  Name char(35) NOT NULL default '',
158
 
  Country char(3) NOT NULL default '',
159
 
  Population int NOT NULL default '0',
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',
168
 
  Population int NOT NULL default '0',
169
 
  Capital int default NULL,
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:
243
 
# changed syntax of int(11) to int
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',
250
 
  IndepYear int DEFAULT NULL,
251
 
  Population int NOT NULL DEFAULT '0',
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,
258
 
  Capital int DEFAULT NULL,
259
 
  Code2 char(2) NOT NULL DEFAULT '',
260
 
  PRIMARY KEY (Code)
261
 
);
262
 
 
263
 
CREATE TABLE t2 (
264
 
  ID int NOT NULL, 
265
 
  Name char(35) NOT NULL DEFAULT '',
266
 
  CountryCode char(3) NOT NULL DEFAULT '',
267
 
  Population int NOT NULL DEFAULT '0',
268
 
  PRIMARY KEY (ID),
269
 
  KEY CountryCode (CountryCode)
270
 
);
271
 
 
272
 
# This died because the test data contained over 100 records with 
273
 
# characters such as umlauts, french accent codes. 
274
 
 
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),
281
 
(63,'Saint Johns','ATG',24000), (64,'Dubai','ARE',669181), (65,'Abu Dhabi','ARE',398695),
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),
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),
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),
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),
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),
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),
307
 
(1524,'Graz','AUT',240967), (1525,'Linz','AUT',188022), (1526,'Salzburg','AUT',144247),
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);
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');
353
 
#update t2 set population=6000000 where Name in ('Wien', 'Vancouver', 'Praha');
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
 
--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;
374
 
explain select 1 from t2 where  c2 in (select 1 from t3, t2) and  c1 in (select convert(c6,char(1)) from t2); 
375
 
drop table t2, t3;
376
 
 
377
 
#
378
 
# Bug#33062: subquery in stored routine cause crash
379
 
#
380
 
 
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;