~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
drop table if exists t1,t2,t3;
2
CREATE TABLE t1 (S1 INT);
3
CREATE TABLE t2 (S1 INT);
4
INSERT INTO t1 VALUES (1);
5
INSERT INTO t2 VALUES (2);
6
SELECT * FROM t1 JOIN t2;
7
S1	S1
8
1	2
9
SELECT * FROM t1 INNER JOIN t2;
10
S1	S1
11
1	2
12
SELECT * from t1 JOIN t2 USING (S1);
13
S1
14
SELECT * FROM t1 INNER JOIN t2 USING (S1);
15
S1
16
SELECT * from t1 CROSS JOIN t2;
17
S1	S1
18
1	2
19
SELECT * from t1 LEFT JOIN t2 USING(S1);
20
S1
21
1
22
SELECT * from t1 LEFT JOIN t2 ON(t2.S1=2);
23
S1	S1
24
1	2
25
SELECT * from t1 RIGHT JOIN t2 USING(S1);
26
S1
27
2
28
SELECT * from t1 RIGHT JOIN t2 ON(t1.S1=1);
29
S1	S1
30
1	2
31
drop table t1,t2;
32
create table t1 (id int primary key);
33
create table t2 (id int);
34
insert into t1 values (75);
35
insert into t1 values (79);
36
insert into t1 values (78);
37
insert into t1 values (77);
38
replace into t1 values (76);
39
replace into t1 values (76);
40
insert into t1 values (104);
41
insert into t1 values (103);
42
insert into t1 values (102);
43
insert into t1 values (101);
44
insert into t1 values (105);
45
insert into t1 values (106);
46
insert into t1 values (107);
47
insert into t2 values (107),(75),(1000);
48
select t1.id, t2.id from t1, t2 where t2.id = t1.id;
49
id	id
50
107	107
51
75	75
52
select t1.id, count(t2.id) from t1,t2 where t2.id = t1.id group by t1.id;
53
id	count(t2.id)
54
75	1
55
107	1
56
select t1.id, count(t2.id) from t1,t2 where t2.id = t1.id group by t2.id;
57
id	count(t2.id)
58
75	1
59
107	1
60
select t1.id,t2.id from t2 left join t1 on t1.id>=74 and t1.id<=0 where t2.id=75 and t1.id is null;
61
id	id
62
NULL	75
63
explain select t1.id,t2.id from t2 left join t1 on t1.id>=74 and t1.id<=0 where t2.id=75 and t1.id is null;
64
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
65
1	SIMPLE	t1	const	PRIMARY	NULL	NULL	NULL	1	Impossible ON condition
66
1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	3	Using where
67
explain select t1.id, t2.id from t1, t2 where t2.id = t1.id and t1.id <0 and t1.id > 0;
68
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
69
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables
70
drop table t1,t2;
71
CREATE TABLE t1 (
72
id int(11) NOT NULL auto_increment,
73
token varchar(100) DEFAULT '' NOT NULL,
74
count int(11) DEFAULT '0' NOT NULL,
75
qty int(11),
76
phone char(1) DEFAULT '' NOT NULL,
77
timestamp datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
78
PRIMARY KEY (id),
79
KEY token (token(15)),
80
KEY timestamp (timestamp),
81
UNIQUE token_2 (token(75),count,phone)
82
);
83
INSERT INTO t1 VALUES (21,'e45703b64de71482360de8fec94c3ade',3,7800,'n','1999-12-23 17:22:21');
84
INSERT INTO t1 VALUES (22,'e45703b64de71482360de8fec94c3ade',4,5000,'y','1999-12-23 17:22:21');
85
INSERT INTO t1 VALUES (18,'346d1cb63c89285b2351f0ca4de40eda',3,13200,'b','1999-12-23 11:58:04');
86
INSERT INTO t1 VALUES (17,'ca6ddeb689e1b48a04146b1b5b6f936a',4,15000,'b','1999-12-23 11:36:53');
87
INSERT INTO t1 VALUES (16,'ca6ddeb689e1b48a04146b1b5b6f936a',3,13200,'b','1999-12-23 11:36:53');
88
INSERT INTO t1 VALUES (26,'a71250b7ed780f6ef3185bfffe027983',5,1500,'b','1999-12-27 09:44:24');
89
INSERT INTO t1 VALUES (24,'4d75906f3c37ecff478a1eb56637aa09',3,5400,'y','1999-12-23 17:29:12');
90
INSERT INTO t1 VALUES (25,'4d75906f3c37ecff478a1eb56637aa09',4,6500,'y','1999-12-23 17:29:12');
91
INSERT INTO t1 VALUES (27,'a71250b7ed780f6ef3185bfffe027983',3,6200,'b','1999-12-27 09:44:24');
92
INSERT INTO t1 VALUES (28,'a71250b7ed780f6ef3185bfffe027983',3,5400,'y','1999-12-27 09:44:36');
93
INSERT INTO t1 VALUES (29,'a71250b7ed780f6ef3185bfffe027983',4,17700,'b','1999-12-27 09:45:05');
94
CREATE TABLE t2 (
95
id int(11) NOT NULL auto_increment,
96
category int(11) DEFAULT '0' NOT NULL,
97
county int(11) DEFAULT '0' NOT NULL,
98
state int(11) DEFAULT '0' NOT NULL,
99
phones int(11) DEFAULT '0' NOT NULL,
100
nophones int(11) DEFAULT '0' NOT NULL,
101
PRIMARY KEY (id),
102
KEY category (category,county,state)
103
);
104
INSERT INTO t2 VALUES (3,2,11,12,5400,7800);
105
INSERT INTO t2 VALUES (4,2,25,12,6500,11200);
106
INSERT INTO t2 VALUES (5,1,37,6,10000,12000);
107
select a.id, b.category as catid, b.state as stateid, b.county as countyid from t1 a, t2 b ignore index (primary) where (a.token ='a71250b7ed780f6ef3185bfffe027983') and (a.count = b.id);
108
id	catid	stateid	countyid
109
27	2	12	11
110
28	2	12	11
111
29	2	12	25
112
26	1	6	37
113
select a.id, b.category as catid, b.state as stateid, b.county as
114
countyid from t1 a, t2 b where (a.token =
115
'a71250b7ed780f6ef3185bfffe027983') and (a.count = b.id) order by a.id;
116
id	catid	stateid	countyid
117
26	1	6	37
118
27	2	12	11
119
28	2	12	11
120
29	2	12	25
121
drop table t1, t2;
122
create table t1 (a int primary key);
123
insert into t1 values(1),(2);
124
select t1.a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a);
125
a
126
1
127
2
128
select t1.a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a) left join t1 as t32 using (a) left join t1 as t33 using (a) left join t1 as t34 using (a) left join t1 as t35 using (a) left join t1 as t36 using (a) left join t1 as t37 using (a) left join t1 as t38 using (a) left join t1 as t39 using (a) left join t1 as t40 using (a) left join t1 as t41 using (a) left join t1 as t42 using (a) left join t1 as t43 using (a) left join t1 as t44 using (a) left join t1 as t45 using (a) left join t1 as t46 using (a) left join t1 as t47 using (a) left join t1 as t48 using (a) left join t1 as t49 using (a) left join t1 as t50 using (a) left join t1 as t51 using (a) left join t1 as t52 using (a) left join t1 as t53 using (a) left join t1 as t54 using (a) left join t1 as t55 using (a) left join t1 as t56 using (a) left join t1 as t57 using (a) left join t1 as t58 using (a) left join t1 as t59 using (a) left join t1 as t60 using (a) left join t1 as t61 using (a) left join t1 as t62 using (a) left join t1 as t63 using (a) left join t1 as t64 using (a) left join t1 as t65 using (a);
129
ERROR HY000: Too many tables; MySQL can only use XX tables in a join
130
select a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a);
131
a
132
1
133
2
134
select a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a) left join t1 as t32 using (a) left join t1 as t33 using (a) left join t1 as t34 using (a) left join t1 as t35 using (a) left join t1 as t36 using (a) left join t1 as t37 using (a) left join t1 as t38 using (a) left join t1 as t39 using (a) left join t1 as t40 using (a) left join t1 as t41 using (a) left join t1 as t42 using (a) left join t1 as t43 using (a) left join t1 as t44 using (a) left join t1 as t45 using (a) left join t1 as t46 using (a) left join t1 as t47 using (a) left join t1 as t48 using (a) left join t1 as t49 using (a) left join t1 as t50 using (a) left join t1 as t51 using (a) left join t1 as t52 using (a) left join t1 as t53 using (a) left join t1 as t54 using (a) left join t1 as t55 using (a) left join t1 as t56 using (a) left join t1 as t57 using (a) left join t1 as t58 using (a) left join t1 as t59 using (a) left join t1 as t60 using (a) left join t1 as t61 using (a) left join t1 as t62 using (a) left join t1 as t63 using (a) left join t1 as t64 using (a) left join t1 as t65 using (a);
135
ERROR HY000: Too many tables; MySQL can only use XX tables in a join
136
drop table t1;
137
CREATE TABLE t1 (
138
a int(11) NOT NULL,
139
b int(11) NOT NULL,
140
PRIMARY KEY  (a,b)
141
) ENGINE=MyISAM;
142
INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(2,3);
143
CREATE TABLE t2 (
144
a int(11) default NULL
145
) ENGINE=MyISAM;
146
INSERT INTO t2 VALUES (2),(3);
147
SELECT t1.a,t2.a,b FROM t1,t2 WHERE t1.a=t2.a AND (t1.a=1 OR t1.a=2) AND b>=1 AND b<=3;
148
a	a	b
149
2	2	3
150
DROP TABLE t1, t2;
151
CREATE TABLE t1 (d DATE NOT NULL);
152
CREATE TABLE t2 (d DATE NOT NULL);
153
INSERT INTO t1 (d) VALUES ('2001-08-01'),('0000-00-00');
154
SELECT * FROM t1 LEFT JOIN t2 USING (d) WHERE t2.d IS NULL;
155
d
156
2001-08-01
157
0000-00-00
158
SELECT * FROM t1 LEFT JOIN t2 USING (d) WHERE d IS NULL;
159
d
160
0000-00-00
161
SELECT * from t1 WHERE t1.d IS NULL;
162
d
163
0000-00-00
164
SELECT * FROM t1 WHERE 1/0 IS NULL;
165
d
166
2001-08-01
167
0000-00-00
168
DROP TABLE t1,t2;
169
CREATE TABLE t1 (
170
Document_ID varchar(50) NOT NULL default '',
171
Contractor_ID varchar(6) NOT NULL default '',
172
Language_ID char(3) NOT NULL default '',
173
Expiration_Date datetime default NULL,
174
Publishing_Date datetime default NULL,
175
Title text,
176
Column_ID varchar(50) NOT NULL default '',
177
PRIMARY KEY  (Language_ID,Document_ID,Contractor_ID)
178
);
179
INSERT INTO t1 VALUES ('xep80','1','ger','2001-12-31 20:00:00','2001-11-12 10:58:00','Kartenbestellung - jetzt auch online','anle'),('','999998','',NULL,NULL,NULL,'');
180
CREATE TABLE t2 (
181
Contractor_ID char(6) NOT NULL default '',
182
Language_ID char(3) NOT NULL default '',
183
Document_ID char(50) NOT NULL default '',
184
CanRead char(1) default NULL,
185
Customer_ID int(11) NOT NULL default '0',
186
PRIMARY KEY  (Contractor_ID,Language_ID,Document_ID,Customer_ID)
187
);
188
INSERT INTO t2 VALUES ('5','ger','xep80','1',999999),('1','ger','xep80','1',999999);
189
CREATE TABLE t3 (
190
Language_ID char(3) NOT NULL default '',
191
Column_ID char(50) NOT NULL default '',
192
Contractor_ID char(6) NOT NULL default '',
193
CanRead char(1) default NULL,
194
Active char(1) default NULL,
195
PRIMARY KEY  (Language_ID,Column_ID,Contractor_ID)
196
);
197
INSERT INTO t3 VALUES ('ger','home','1','1','1'),('ger','Test','1','0','0'),('ger','derclu','1','0','0'),('ger','clubne','1','0','0'),('ger','philos','1','0','0'),('ger','clubko','1','0','0'),('ger','clubim','1','1','1'),('ger','progra','1','0','0'),('ger','progvo','1','0','0'),('ger','progsp','1','0','0'),('ger','progau','1','0','0'),('ger','progku','1','0','0'),('ger','progss','1','0','0'),('ger','nachl','1','0','0'),('ger','mitgli','1','0','0'),('ger','mitsu','1','0','0'),('ger','mitbus','1','0','0'),('ger','ergmar','1','1','1'),('ger','home','4','1','1'),('ger','derclu','4','1','1'),('ger','clubne','4','0','0'),('ger','philos','4','1','1'),('ger','clubko','4','1','1'),('ger','clubim','4','1','1'),('ger','progra','4','1','1'),('ger','progvo','4','1','1'),('ger','progsp','4','1','1'),('ger','progau','4','0','0'),('ger','progku','4','1','1'),('ger','progss','4','1','1'),('ger','nachl','4','1','1'),('ger','mitgli','4','0','0'),('ger','mitsu','4','0','0'),('ger','mitbus','4','0','0'),('ger','ergmar','4','1','1'),('ger','progra2','1','0','0'),('ger','archiv','4','1','1'),('ger','anmeld','4','1','1'),('ger','thema','4','1','1'),('ger','edito','4','1','1'),('ger','madis','4','1','1'),('ger','enma','4','1','1'),('ger','madis','1','1','1'),('ger','enma','1','1','1'),('ger','vorsch','4','0','0'),('ger','veranst','4','0','0'),('ger','anle','4','1','1'),('ger','redak','4','1','1'),('ger','nele','4','1','1'),('ger','aukt','4','1','1'),('ger','callcenter','4','1','1'),('ger','anle','1','0','0');
198
delete from t1 where Contractor_ID='999998';
199
insert into t1 (Contractor_ID) Values ('999998');
200
SELECT DISTINCT COUNT(t1.Title) FROM t1,
201
t2, t3 WHERE 
202
t1.Document_ID='xep80' AND t1.Contractor_ID='1' AND 
203
t1.Language_ID='ger' AND '2001-12-21 23:14:24' >= 
204
Publishing_Date AND '2001-12-21 23:14:24' <= Expiration_Date AND 
205
t1.Document_ID = t2.Document_ID AND 
206
t1.Language_ID = t2.Language_ID AND 
207
t1.Contractor_ID = t2.Contractor_ID AND ( 
208
t2.Customer_ID = '4'  OR 
209
t2.Customer_ID = '999999'  OR 
210
t2.Customer_ID = '1' )AND t2.CanRead 
211
= '1'  AND t1.Column_ID=t3.Column_ID AND 
212
t1.Language_ID=t3.Language_ID AND ( 
213
t3.Contractor_ID = '4'  OR 
214
t3.Contractor_ID = '999999'  OR 
215
t3.Contractor_ID = '1') AND 
216
t3.CanRead='1' AND t3.Active='1';
217
COUNT(t1.Title)
218
1
219
SELECT DISTINCT COUNT(t1.Title) FROM t1,
220
t2, t3 WHERE 
221
t1.Document_ID='xep80' AND t1.Contractor_ID='1' AND 
222
t1.Language_ID='ger' AND '2001-12-21 23:14:24' >= 
223
Publishing_Date AND '2001-12-21 23:14:24' <= Expiration_Date AND 
224
t1.Document_ID = t2.Document_ID AND 
225
t1.Language_ID = t2.Language_ID AND 
226
t1.Contractor_ID = t2.Contractor_ID AND ( 
227
t2.Customer_ID = '4'  OR 
228
t2.Customer_ID = '999999'  OR 
229
t2.Customer_ID = '1' )AND t2.CanRead 
230
= '1'  AND t1.Column_ID=t3.Column_ID AND 
231
t1.Language_ID=t3.Language_ID AND ( 
232
t3.Contractor_ID = '4'  OR 
233
t3.Contractor_ID = '999999'  OR 
234
t3.Contractor_ID = '1') AND 
235
t3.CanRead='1' AND t3.Active='1';
236
COUNT(t1.Title)
237
1
238
drop table t1,t2,t3;
239
CREATE TABLE t1 (
240
t1_id int(11) default NULL,
241
t2_id int(11) default NULL,
242
type enum('Cost','Percent') default NULL,
243
cost_unit enum('Cost','Unit') default NULL,
244
min_value double default NULL,
245
max_value double default NULL,
246
t3_id int(11) default NULL,
247
item_id int(11) default NULL
248
) ENGINE=MyISAM;
249
INSERT INTO t1 VALUES (12,5,'Percent','Cost',-1,0,-1,-1),(14,4,'Percent','Cost',-1,0,-1,-1),(18,5,'Percent','Cost',-1,0,-1,-1),(19,4,'Percent','Cost',-1,0,-1,-1),(20,5,'Percent','Cost',100,-1,22,291),(21,5,'Percent','Cost',100,-1,18,291),(22,1,'Percent','Cost',100,-1,6,291),(23,1,'Percent','Cost',100,-1,21,291),(24,1,'Percent','Cost',100,-1,9,291),(25,1,'Percent','Cost',100,-1,4,291),(26,1,'Percent','Cost',100,-1,20,291),(27,4,'Percent','Cost',100,-1,7,202),(28,1,'Percent','Cost',50,-1,-1,137),(29,2,'Percent','Cost',100,-1,4,354),(30,2,'Percent','Cost',100,-1,9,137),(93,2,'Cost','Cost',-1,10000000,-1,-1);
250
CREATE TABLE t2 (
251
id int(10) unsigned NOT NULL auto_increment,
252
name varchar(255) default NULL,
253
PRIMARY KEY  (id)
254
) ENGINE=MyISAM;
255
INSERT INTO t2 VALUES (1,'s1'),(2,'s2'),(3,'s3'),(4,'s4'),(5,'s5');
256
select t1.*, t2.*  from t1, t2 where t2.id=t1.t2_id limit 2;
257
t1_id	t2_id	type	cost_unit	min_value	max_value	t3_id	item_id	id	name
258
22	1	Percent	Cost	100	-1	6	291	1	s1
259
23	1	Percent	Cost	100	-1	21	291	1	s1
260
drop table t1,t2;
261
CREATE TABLE t1 (
262
siteid varchar(25) NOT NULL default '',
263
emp_id varchar(30) NOT NULL default '',
264
rate_code varchar(10) default NULL,
265
UNIQUE KEY site_emp (siteid,emp_id),
266
KEY siteid (siteid)
267
) ENGINE=MyISAM;
268
INSERT INTO t1 VALUES ('rivercats','psmith','cust'), ('rivercats','KWalker','cust');
269
CREATE TABLE t2 (
270
siteid varchar(25) NOT NULL default '',
271
rate_code varchar(10) NOT NULL default '',
272
base_rate float NOT NULL default '0',
273
PRIMARY KEY  (siteid,rate_code)
274
) ENGINE=MyISAM;
275
INSERT INTO t2 VALUES ('rivercats','cust',20);
276
SELECT emp.rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE emp.emp_id = 'psmith' AND lr.siteid = 'rivercats';
277
rate_code	base_rate
278
cust	20
279
SELECT emp.rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE lr.siteid = 'rivercats' AND emp.emp_id = 'psmith';
280
rate_code	base_rate
281
cust	20
282
SELECT rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE emp.emp_id = 'psmith' AND siteid = 'rivercats';
283
rate_code	base_rate
284
cust	20
285
SELECT rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE siteid = 'rivercats' AND emp.emp_id = 'psmith';
286
rate_code	base_rate
287
cust	20
288
drop table t1,t2;
289
CREATE TABLE t1 (ID INTEGER NOT NULL PRIMARY KEY, Value1 VARCHAR(255));
290
CREATE TABLE t2 (ID INTEGER NOT NULL PRIMARY KEY, Value2 VARCHAR(255));
291
INSERT INTO t1 VALUES (1, 'A');
292
INSERT INTO t2 VALUES (1, 'B');
293
SELECT * FROM t1 NATURAL JOIN t2 WHERE 1 AND (Value1 = 'A' AND Value2 <> 'B');
294
ID	Value1	Value2
295
SELECT * FROM t1 NATURAL JOIN t2 WHERE 1 AND Value1 = 'A' AND Value2 <> 'B';
296
ID	Value1	Value2
297
SELECT * FROM t1 NATURAL JOIN t2 WHERE (Value1 = 'A' AND Value2 <> 'B') AND 1;
298
ID	Value1	Value2
299
drop table t1,t2;
300
CREATE TABLE t1 (a int);
301
CREATE TABLE t2 (b int);
302
CREATE TABLE t3 (c int);
303
SELECT * FROM t1 NATURAL JOIN t2 NATURAL JOIN t3;
304
a	b	c
305
DROP TABLE t1, t2, t3;
306
create table t1 (i int);
307
create table t2 (i int);
308
create table t3 (i int);
309
insert into t1 values(1),(2);
310
insert into t2 values(2),(3);
311
insert into t3 values (2),(4);
312
select * from t1 natural left join t2;
313
i
314
1
315
2
316
select * from t1 left join t2 on (t1.i=t2.i);
317
i	i
318
1	NULL
319
2	2
320
select * from t1 natural left join t2 natural left join t3;
321
i
322
1
323
2
324
select * from t1 left join t2 on (t1.i=t2.i) left join t3 on (t2.i=t3.i);
325
i	i	i
326
1	NULL	NULL
327
2	2	2
328
select * from t3 natural right join t2;
329
i
330
2
331
3
332
select * from t3 right join t2 on (t3.i=t2.i);
333
i	i
334
2	2
335
NULL	3
336
select * from t3 natural right join t2 natural right join t1;
337
i
338
1
339
2
340
select * from t3 right join t2 on (t3.i=t2.i) right join t1 on (t2.i=t1.i);
341
i	i	i
342
NULL	NULL	1
343
2	2	2
344
select * from t1,t2 natural left join t3 order by t1.i,t2.i,t3.i;
345
i	i
346
1	2
347
1	3
348
2	2
349
2	3
350
select * from t1,t2 left join t3 on (t2.i=t3.i) order by t1.i,t2.i,t3.i;
351
i	i	i
352
1	2	2
353
1	3	NULL
354
2	2	2
355
2	3	NULL
356
select t1.i,t2.i,t3.i from t2 natural left join t3,t1 order by t1.i,t2.i,t3.i;
357
i	i	i
358
1	2	2
359
1	3	NULL
360
2	2	2
361
2	3	NULL
362
select t1.i,t2.i,t3.i from t2 left join t3 on (t2.i=t3.i),t1 order by t1.i,t2.i,t3.i;
363
i	i	i
364
1	2	2
365
1	3	NULL
366
2	2	2
367
2	3	NULL
368
select * from t1,t2 natural right join t3 order by t1.i,t2.i,t3.i;
369
i	i
370
1	4
371
1	2
372
2	4
373
2	2
374
select * from t1,t2 right join t3 on (t2.i=t3.i) order by t1.i,t2.i,t3.i;
375
i	i	i
376
1	NULL	4
377
1	2	2
378
2	NULL	4
379
2	2	2
380
select t1.i,t2.i,t3.i from t2 natural right join t3,t1 order by t1.i,t2.i,t3.i;
381
i	i	i
382
1	NULL	4
383
1	2	2
384
2	NULL	4
385
2	2	2
386
select t1.i,t2.i,t3.i from t2 right join t3 on (t2.i=t3.i),t1 order by t1.i,t2.i,t3.i;
387
i	i	i
388
1	NULL	4
389
1	2	2
390
2	NULL	4
391
2	2	2
392
drop table t1,t2,t3;
393
CREATE TABLE t1 (a int, b int default 0, c int default 1);
394
INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8);
395
INSERT INTO t1 (a) SELECT a + 8 FROM t1;
396
INSERT INTO t1 (a) SELECT a + 16 FROM t1;
397
CREATE TABLE t2 (a int, d int, e int default 0);
398
INSERT INTO t2 (a, d) VALUES (1,1),(2,2),(3,3),(4,4);
399
INSERT INTO t2 (a, d) SELECT a+4, a+4 FROM t2;
400
INSERT INTO t2 (a, d) SELECT a+8, a+8 FROM t2;
401
EXPLAIN
402
SELECT STRAIGHT_JOIN t2.e FROM t1,t2 WHERE t2.d=1 AND t1.b=t2.e
403
ORDER BY t1.b, t1.c;
404
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
405
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	32	Using temporary; Using filesort
406
1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	16	Using where; Using join buffer
407
SELECT STRAIGHT_JOIN t2.e FROM t1,t2 WHERE t2.d=1 AND t1.b=t2.e
408
ORDER BY t1.b, t1.c;
409
e
410
0
411
0
412
0
413
0
414
0
415
0
416
0
417
0
418
0
419
0
420
0
421
0
422
0
423
0
424
0
425
0
426
0
427
0
428
0
429
0
430
0
431
0
432
0
433
0
434
0
435
0
436
0
437
0
438
0
439
0
440
0
441
0
442
DROP TABLE t1,t2;
443
create table t1 (c int, b int);
444
create table t2 (a int, b int);
445
create table t3 (b int, c int);
446
create table t4 (y int, c int);
447
create table t5 (y int, z int);
448
create table t6 (a int, c int);
449
insert into t1 values (10,1);
450
insert into t1 values (3 ,1);
451
insert into t1 values (3 ,2);
452
insert into t2 values (2, 1);
453
insert into t3 values (1, 3);
454
insert into t3 values (1,10);
455
insert into t4 values (11,3);
456
insert into t4 values (2, 3);
457
insert into t5 values (11,4);
458
insert into t6 values (2, 3);
459
select * from t1 natural join t2;
460
b	c	a
461
1	10	2
462
1	3	2
463
select * from t1 natural join t2;
464
b	c	a
465
1	10	2
466
1	3	2
467
select b as a, c as b, a as c from t1 natural join t2;
468
a	b	c
469
1	10	2
470
1	3	2
471
select a as c, c as b, b as a from t1 natural join t2;
472
c	b	a
473
2	10	1
474
2	3	1
475
select t1.c, t1.b, t2.a from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
476
c	b	a
477
3	1	2
478
3	2	2
479
select t1.c as b, t1.b as a, t2.a as c
480
from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
481
b	a	c
482
3	1	2
483
3	2	2
484
select * from t1 natural join (t2 natural join t3);
485
c	b	a
486
10	1	2
487
3	1	2
488
select * from (t1 natural join t2) natural join (t3 natural join t4);
489
b	c	a	y
490
1	3	2	11
491
1	3	2	2
492
select * from (t1 natural join t2) natural left join (t3 natural join t4);
493
b	c	a	y
494
1	10	2	NULL
495
1	3	2	11
496
1	3	2	2
497
select * from (t3 natural join t4) natural right join (t1 natural join t2);
498
b	c	a	y
499
1	10	2	NULL
500
1	3	2	11
501
1	3	2	2
502
select * from (t1 natural left join t2) natural left join (t3 natural left join t4);
503
b	c	a	y
504
1	10	2	NULL
505
1	3	2	11
506
1	3	2	2
507
2	3	NULL	NULL
508
select * from (t4 natural right join t3) natural right join (t2 natural right join t1);
509
b	c	a	y
510
1	10	2	NULL
511
1	3	2	11
512
1	3	2	2
513
2	3	NULL	NULL
514
select * from t1 natural join t2 natural join t3 natural join t4;
515
c	b	a	y
516
3	1	2	11
517
3	1	2	2
518
select * from ((t1 natural join t2) natural join t3) natural join t4;
519
c	b	a	y
520
3	1	2	11
521
3	1	2	2
522
select * from t1 natural join (t2 natural join (t3 natural join t4));
523
c	b	a	y
524
3	1	2	11
525
3	1	2	2
526
select * from t5 natural right join (t4 natural right join ((t2 natural right join t1) natural right join t3));
527
y	c	b	a	z
528
11	3	1	2	4
529
2	3	1	2	NULL
530
NULL	10	1	2	NULL
531
select * from (t1 natural join t2), (t3 natural join t4);
532
b	c	a	c	b	y
533
1	10	2	3	1	11
534
1	10	2	3	1	2
535
1	3	2	3	1	11
536
1	3	2	3	1	2
537
select * from t5 natural join ((t1 natural join t2), (t3 natural join t4));
538
y	z	b	c	a	c	b
539
11	4	1	10	2	3	1
540
11	4	1	3	2	3	1
541
select * from  ((t1 natural join t2),  (t3 natural join t4)) natural join t5;
542
y	b	c	a	c	b	z
543
11	1	10	2	3	1	4
544
11	1	3	2	3	1	4
545
select * from t5 natural join ((t1 natural join t2) cross join (t3 natural join t4));
546
y	z	b	c	a	c	b
547
11	4	1	10	2	3	1
548
11	4	1	3	2	3	1
549
select * from  ((t1 natural join t2) cross join (t3 natural join t4)) natural join t5;
550
y	b	c	a	c	b	z
551
11	1	10	2	3	1	4
552
11	1	3	2	3	1	4
553
select * from (t1 join t2 using (b)) join (t3 join t4 using (c)) using (c);
554
c	b	a	b	y
555
3	1	2	1	11
556
3	1	2	1	2
557
select * from (t1 join t2 using (b)) natural join (t3 join t4 using (c));
558
b	c	a	y
559
1	3	2	11
560
1	3	2	2
561
select a,b,c from (t1 natural join t2) natural join (t3 natural join t4)
562
where b + 1 = y or b + 10 = y group by b,c,a having min(b) < max(y) order by a;
563
a	b	c
564
2	1	3
565
select * from (t1 natural join t2) natural left join (t3 natural join t4)
566
where b + 1 = y or b + 10 = y group by b,c,a,y having min(b) < max(y) order by a, y;
567
b	c	a	y
568
1	3	2	2
569
1	3	2	11
570
select * from (t3 natural join t4) natural right join (t1 natural join t2)
571
where b + 1 = y or b + 10 = y group by b,c,a,y having min(b) < max(y) order by a, y;
572
b	c	a	y
573
1	3	2	2
574
1	3	2	11
575
select * from t1 natural join t2 where t1.c > t2.a;
576
b	c	a
577
1	10	2
578
1	3	2
579
select * from t1 natural join t2 where t1.b > t2.b;
580
b	c	a
581
select * from t1 natural left join (t4 natural join t5) where t5.z is not NULL;
582
c	b	y	z
583
3	1	11	4
584
3	2	11	4
585
select * from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
586
c	b	a	b	y	c
587
3	1	2	1	2	3
588
3	2	2	1	2	3
589
select * from (t2 join t4 on b + 1 = y) join t1 on t1.c = t4.c;
590
a	b	y	c	c	b
591
2	1	2	3	3	1
592
2	1	2	3	3	2
593
select * from t1 natural join (t2 join t4 on b + 1 = y);
594
c	b	a	y
595
3	1	2	2
596
select * from (t1 cross join t2) join (t3 cross join t4) on (a < y and t2.b < t3.c);
597
c	b	a	b	b	c	y	c
598
10	1	2	1	1	3	11	3
599
10	1	2	1	1	10	11	3
600
3	1	2	1	1	3	11	3
601
3	1	2	1	1	10	11	3
602
3	2	2	1	1	3	11	3
603
3	2	2	1	1	10	11	3
604
select * from (t1, t2) join (t3, t4) on (a < y and t2.b < t3.c);
605
c	b	a	b	b	c	y	c
606
10	1	2	1	1	3	11	3
607
10	1	2	1	1	10	11	3
608
3	1	2	1	1	3	11	3
609
3	1	2	1	1	10	11	3
610
3	2	2	1	1	3	11	3
611
3	2	2	1	1	10	11	3
612
select * from (t1 natural join t2) join (t3 natural join t4) on a = y;
613
b	c	a	c	b	y
614
1	10	2	3	1	2
615
1	3	2	3	1	2
616
select * from ((t3 join (t1 join t2 on c > a) on t3.b < t2.a) join t4 on y > t1.c) join t5 on z = t1.b + 3;
617
b	c	c	b	a	b	y	c	y	z
618
1	3	10	1	2	1	11	3	11	4
619
1	10	10	1	2	1	11	3	11	4
620
1	3	3	1	2	1	11	3	11	4
621
1	10	3	1	2	1	11	3	11	4
622
select * from t1 natural join t2 where t1.b > 0;
623
b	c	a
624
1	10	2
625
1	3	2
626
select * from t1 natural join (t4 natural join t5) where t4.y > 7;
627
c	b	y	z
628
3	1	11	4
629
3	2	11	4
630
select * from (t4 natural join t5) natural join t1 where t4.y > 7;
631
c	y	z	b
632
3	11	4	1
633
3	11	4	2
634
select * from t1 natural left join (t4 natural join t5) where t4.y > 7;
635
c	b	y	z
636
3	1	11	4
637
3	2	11	4
638
select * from (t4 natural join t5) natural right join t1 where t4.y > 7;
639
c	b	y	z
640
3	1	11	4
641
3	2	11	4
642
select * from (t1 natural join t2) join (t3 natural join t4) on t1.b = t3.b;
643
b	c	a	c	b	y
644
1	10	2	3	1	11
645
1	10	2	3	1	2
646
1	3	2	3	1	11
647
1	3	2	3	1	2
648
select t1.*, t2.* from t1 natural join t2;
649
c	b	a	b
650
10	1	2	1
651
3	1	2	1
652
select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) natural join (t3 natural join t4);
653
c	b	a	b	b	c	y	c
654
3	1	2	1	1	3	11	3
655
3	1	2	1	1	3	2	3
656
select * from (select * from t1 natural join t2) as t12
657
natural join
658
(select * from t3 natural join t4) as t34;
659
b	c	a	y
660
1	3	2	11
661
1	3	2	2
662
select * from (select * from t1 natural join t2) as t12
663
natural left join
664
(select * from t3 natural join t4) as t34;
665
b	c	a	y
666
1	10	2	NULL
667
1	3	2	11
668
1	3	2	2
669
select * from (select * from t3 natural join t4) as t34
670
natural right join
671
(select * from t1 natural join t2) as t12;
672
b	c	a	y
673
1	10	2	NULL
674
1	3	2	11
675
1	3	2	2
676
select * from t1 natural join (t3 cross join t4);
677
ERROR 23000: Column 'c' in from clause is ambiguous
678
select * from (t3 cross join t4) natural join t1;
679
ERROR 23000: Column 'c' in from clause is ambiguous
680
select * from t1 join (t2, t3) using (b);
681
ERROR 23000: Column 'b' in from clause is ambiguous
682
select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
683
ERROR 23000: Column 'c' in from clause is ambiguous
684
select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
685
ERROR 23000: Column 'c' in from clause is ambiguous
686
select * from t6 natural join ((t1 natural join t2),  (t3 natural join t4));
687
ERROR 23000: Column 'c' in from clause is ambiguous
688
select * from (t1 join t2 on t1.b=t2.b) natural join (t3 natural join t4);
689
ERROR 23000: Column 'b' in from clause is ambiguous
690
select * from  (t3 natural join t4) natural join (t1 join t2 on t1.b=t2.b);
691
ERROR 23000: Column 'b' in from clause is ambiguous
692
select * from (t3 join (t4 natural join t5) on (b < z))
693
natural join
694
(t1 natural join t2);
695
ERROR 23000: Column 'c' in from clause is ambiguous
696
select * from (t1 natural join t2) natural join (t3 join (t4 natural join t5) on (b < z));
697
ERROR 23000: Column 'c' in from clause is ambiguous
698
drop table t1;
699
drop table t2;
700
drop table t3;
701
drop table t4;
702
drop table t5;
703
drop table t6;
704
create table t1 (a1 int, a2 int);
705
create table t2 (a1 int, b int);
706
create table t3 (c1 int, c2 int);
707
create table t4 (c2 int);
708
insert into t1 values (1,1);
709
insert into t2 values (1,1);
710
insert into t3 values (1,1);
711
insert into t4 values (1);
712
select * from t1 join t2 using (a1) join t3 on b=c1 join t4 using (c2);
713
c2	a1	a2	b	c1
714
1	1	1	1	1
715
select * from t3 join (t1 join t2 using (a1)) on b=c1 join t4 using (c2);
716
c2	c1	a1	a2	b
717
1	1	1	1	1
718
select a2 from t1 join t2 using (a1) join t3 on b=c1 join t4 using (c2);
719
a2
720
1
721
select a2 from t3 join (t1 join t2 using (a1)) on b=c1 join t4 using (c2);
722
a2
723
1
724
select a2 from ((t1 join t2 using (a1)) join t3 on b=c1) join t4 using (c2);
725
a2
726
1
727
select a2 from ((t1 natural join t2) join t3 on b=c1) natural join t4;
728
a2
729
1
730
drop table t1,t2,t3,t4;
731
create table t1 (c int, b int);
732
create table t2 (a int, b int);
733
create table t3 (b int, c int);
734
create table t4 (y int, c int);
735
create table t5 (y int, z int);
736
insert into t1 values (3,2);
737
insert into t2 values (1,2);
738
insert into t3 values (2,3);
739
insert into t4 values (1,3);
740
insert into t5 values (1,4);
741
select * from ((t3 natural join (t1 natural join t2)) natural join t4)
742
natural join t5;
743
y	c	b	a	z
744
1	3	2	1	4
745
drop table t1, t2, t3, t4, t5;
746
create table t1 (a int, b int);
747
insert into t1 values 
748
(NULL, 1),
749
(NULL, 2),
750
(NULL, 3),
751
(NULL, 4);
752
create table t2 (a int not null, primary key(a));
753
insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
754
create table t3 (a int not null, primary key(a));
755
insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
756
flush status;
757
select * from t1, t2, t3 where t3.a=t1.a and t2.a=t1.b;
758
a	b	a	a
759
explain select * from t1, t2, t3 where t3.a=t1.a and t2.a=t1.b;
760
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
761
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	4	
762
1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	4	test.t1.b	1	Using index
763
1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	4	test.t1.a	1	Using index
764
We expect rnd_next=5, and read_key must be 0 because of short-cutting:
765
show status like 'Handler_read%';
766
Variable_name	Value
767
Handler_read_first	0
768
Handler_read_key	0
769
Handler_read_next	0
770
Handler_read_prev	0
771
Handler_read_rnd	0
772
Handler_read_rnd_next	5
773
drop table t1, t2, t3;
774
create table t1 (a int);
775
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
776
create table t2 (a int, b int, filler char(100), key(a), key(b));
777
create table t3 (a int, b int, filler char(100), key(a), key(b));
778
insert into t2 
779
select @a:= A.a + 10*(B.a + 10*C.a), @a, 'filler' from t1 A, t1 B, t1 C;
780
insert into t3 select * from t2 where a < 800;
781
explain select * from t2,t3 where t2.a < 200 and t2.b=t3.b;
782
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
783
1	SIMPLE	t2	ALL	a,b	NULL	NULL	NULL	1000	Using where
784
1	SIMPLE	t3	ref	b	b	5	test.t2.b	1	
785
drop table t1, t2, t3;
786
create table t1 (a int);
787
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
788
create table t2 (a int, b int, primary key(a));
789
insert into t2 select @v:=A.a+10*B.a, @v  from t1 A, t1 B;
790
explain select * from t1;
791
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
792
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	10	
793
show status like '%cost%';
794
Variable_name	Value
795
Last_query_cost	4.016090
796
select 'The cost of accessing t1 (dont care if it changes' '^';
797
The cost of accessing t1 (dont care if it changes
798
The cost of accessing t1 (dont care if it changes^
799
select 'vv: Following query must use ALL(t1), eq_ref(A), eq_ref(B): vv' Z;
800
Z
801
vv: Following query must use ALL(t1), eq_ref(A), eq_ref(B): vv
802
explain select * from t1, t2 A, t2 B where A.a = t1.a and B.a=A.b;
803
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
804
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	10	
805
1	SIMPLE	A	eq_ref	PRIMARY	PRIMARY	4	test.t1.a	1	
806
1	SIMPLE	B	eq_ref	PRIMARY	PRIMARY	4	test.A.b	1	
807
show status like '%cost%';
808
Variable_name	Value
809
Last_query_cost	24.016090
810
select '^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error' Z;
811
Z
812
^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error
813
drop table t1, t2;
814
CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
815
CREATE TABLE t2 (c INT PRIMARY KEY, d INT);
816
INSERT INTO t1 VALUES(1,NULL),(2,NULL),(3,NULL),(4,NULL);
817
INSERT INTO t1 SELECT a + 4, b FROM t1;
818
INSERT INTO t1 SELECT a + 8, b FROM t1;
819
INSERT INTO t1 SELECT a + 16, b FROM t1;
820
INSERT INTO t1 SELECT a + 32, b FROM t1;
821
INSERT INTO t1 SELECT a + 64, b FROM t1;
822
INSERT INTO t2 SELECT a, b FROM t1;
823
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
824
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
825
1	SIMPLE	t1	index	NULL	PRIMARY	4	NULL	2	
826
1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	4	test.t1.b	1	
827
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
828
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
829
1	SIMPLE	t1	index	PRIMARY	PRIMARY	4	NULL	2	
830
1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	4	test.t1.a	1	
831
SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
832
a	b	c	d
833
SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
834
a	b	c	d
835
1	NULL	1	NULL
836
2	NULL	2	NULL
837
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
838
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
839
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	128	Using filesort
840
1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	4	test.t1.b	1	
841
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
842
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
843
1	SIMPLE	t1	ALL	PRIMARY	NULL	NULL	NULL	128	Using filesort
844
1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	4	test.t1.a	1	
845
SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
846
a	b	c	d
847
SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
848
a	b	c	d
849
1	NULL	1	NULL
850
2	NULL	2	NULL
851
3	NULL	3	NULL
852
4	NULL	4	NULL
853
5	NULL	5	NULL
854
6	NULL	6	NULL
855
7	NULL	7	NULL
856
8	NULL	8	NULL
857
9	NULL	9	NULL
858
10	NULL	10	NULL
859
11	NULL	11	NULL
860
12	NULL	12	NULL
861
13	NULL	13	NULL
862
14	NULL	14	NULL
863
15	NULL	15	NULL
864
16	NULL	16	NULL
865
17	NULL	17	NULL
866
18	NULL	18	NULL
867
19	NULL	19	NULL
868
20	NULL	20	NULL
869
21	NULL	21	NULL
870
22	NULL	22	NULL
871
23	NULL	23	NULL
872
24	NULL	24	NULL
873
25	NULL	25	NULL
874
26	NULL	26	NULL
875
27	NULL	27	NULL
876
28	NULL	28	NULL
877
29	NULL	29	NULL
878
30	NULL	30	NULL
879
31	NULL	31	NULL
880
32	NULL	32	NULL
881
33	NULL	33	NULL
882
34	NULL	34	NULL
883
35	NULL	35	NULL
884
36	NULL	36	NULL
885
37	NULL	37	NULL
886
38	NULL	38	NULL
887
39	NULL	39	NULL
888
40	NULL	40	NULL
889
41	NULL	41	NULL
890
42	NULL	42	NULL
891
43	NULL	43	NULL
892
44	NULL	44	NULL
893
45	NULL	45	NULL
894
46	NULL	46	NULL
895
47	NULL	47	NULL
896
48	NULL	48	NULL
897
49	NULL	49	NULL
898
50	NULL	50	NULL
899
51	NULL	51	NULL
900
52	NULL	52	NULL
901
53	NULL	53	NULL
902
54	NULL	54	NULL
903
55	NULL	55	NULL
904
56	NULL	56	NULL
905
57	NULL	57	NULL
906
58	NULL	58	NULL
907
59	NULL	59	NULL
908
60	NULL	60	NULL
909
61	NULL	61	NULL
910
62	NULL	62	NULL
911
63	NULL	63	NULL
912
64	NULL	64	NULL
913
65	NULL	65	NULL
914
66	NULL	66	NULL
915
67	NULL	67	NULL
916
68	NULL	68	NULL
917
69	NULL	69	NULL
918
70	NULL	70	NULL
919
71	NULL	71	NULL
920
72	NULL	72	NULL
921
73	NULL	73	NULL
922
74	NULL	74	NULL
923
75	NULL	75	NULL
924
76	NULL	76	NULL
925
77	NULL	77	NULL
926
78	NULL	78	NULL
927
79	NULL	79	NULL
928
80	NULL	80	NULL
929
81	NULL	81	NULL
930
82	NULL	82	NULL
931
83	NULL	83	NULL
932
84	NULL	84	NULL
933
85	NULL	85	NULL
934
86	NULL	86	NULL
935
87	NULL	87	NULL
936
88	NULL	88	NULL
937
89	NULL	89	NULL
938
90	NULL	90	NULL
939
91	NULL	91	NULL
940
92	NULL	92	NULL
941
93	NULL	93	NULL
942
94	NULL	94	NULL
943
95	NULL	95	NULL
944
96	NULL	96	NULL
945
97	NULL	97	NULL
946
98	NULL	98	NULL
947
99	NULL	99	NULL
948
100	NULL	100	NULL
949
101	NULL	101	NULL
950
102	NULL	102	NULL
951
103	NULL	103	NULL
952
104	NULL	104	NULL
953
105	NULL	105	NULL
954
106	NULL	106	NULL
955
107	NULL	107	NULL
956
108	NULL	108	NULL
957
109	NULL	109	NULL
958
110	NULL	110	NULL
959
111	NULL	111	NULL
960
112	NULL	112	NULL
961
113	NULL	113	NULL
962
114	NULL	114	NULL
963
115	NULL	115	NULL
964
116	NULL	116	NULL
965
117	NULL	117	NULL
966
118	NULL	118	NULL
967
119	NULL	119	NULL
968
120	NULL	120	NULL
969
121	NULL	121	NULL
970
122	NULL	122	NULL
971
123	NULL	123	NULL
972
124	NULL	124	NULL
973
125	NULL	125	NULL
974
126	NULL	126	NULL
975
127	NULL	127	NULL
976
128	NULL	128	NULL
977
DROP TABLE IF EXISTS t1,t2;
978
End of 5.0 tests.