Merge lp:~linuxjedi/drizzle/trunk-bug-713347 into lp:drizzle/7.0

Proposed by Andrew Hutchings
Status: Merged
Approved by: Brian Aker
Approved revision: 2144
Merged at revision: 2149
Proposed branch: lp:~linuxjedi/drizzle/trunk-bug-713347
Merge into: lp:drizzle/7.0
Diff against target: 1631 lines (+171/-210)
79 files modified
drizzled/error.cc (+1/-1)
drizzled/error_t.h (+2/-1)
drizzled/join.cc (+7/-0)
drizzled/sql_lex.cc (+1/-0)
drizzled/sql_lex.h (+5/-0)
drizzled/sql_yacc.yy (+5/-1)
plugin/innobase/os/os0file.cc (+1/-1)
plugin/innobase/tests/r/func_group_innodb.result (+4/-4)
plugin/innobase/tests/r/index_merge_innodb.result (+1/-1)
plugin/innobase/tests/r/innodb_mysql.result (+1/-1)
plugin/innobase/tests/t/func_group_innodb.test (+4/-4)
plugin/session_dictionary/tests/r/data_dictionary.result (+2/-2)
plugin/session_dictionary/tests/t/data_dictionary.test (+2/-2)
plugin/table_cache_dictionary/tests/r/table_cache.result (+1/-1)
plugin/table_cache_dictionary/tests/r/table_definition_cache.result (+1/-1)
plugin/table_cache_dictionary/tests/t/table_cache.test (+1/-1)
plugin/table_cache_dictionary/tests/t/table_definition_cache.test (+1/-1)
tests/include/index_merge2.inc (+1/-1)
tests/include/mix1.inc (+1/-1)
tests/r/derived.result (+9/-9)
tests/r/distinct.result (+1/-3)
tests/r/func_gconcat.result (+3/-2)
tests/r/func_group.result (+2/-2)
tests/r/func_in.result (+8/-8)
tests/r/global_read_constraints.result (+1/-1)
tests/r/group_by.result (+1/-1)
tests/r/group_min_max.result (+1/-1)
tests/r/insert_select.result (+1/-1)
tests/r/join.result (+5/-7)
tests/r/join_nested.result (+5/-21)
tests/r/key_diff.result (+1/-1)
tests/r/olap.result (+1/-1)
tests/r/order_by.result (+3/-3)
tests/r/range.result (+2/-2)
tests/r/select.result (+3/-3)
tests/r/select_safe.result (+2/-2)
tests/r/status.result (+1/-1)
tests/r/subselect.result (+2/-10)
tests/r/subselect3.result (+1/-1)
tests/r/subselect_sj.result (+1/-1)
tests/r/subselect_sj2.result (+1/-1)
tests/r/sum_distinct.result (+3/-3)
tests/r/type_blob.result (+1/-1)
tests/r/type_date.result (+2/-2)
tests/r/type_float.result (+1/-1)
tests/r/type_ranges.result (+1/-1)
tests/r/union.result (+1/-1)
tests/r/update.result (+1/-1)
tests/suite/jp/r/join_utf8.result (+0/-30)
tests/suite/jp/t/join_utf8.test (+0/-6)
tests/t/derived.test (+6/-6)
tests/t/distinct.test (+1/-0)
tests/t/func_gconcat.test (+3/-2)
tests/t/func_group.test (+2/-2)
tests/t/func_in.test (+8/-8)
tests/t/global_read_constraints.test (+1/-1)
tests/t/group_by.test (+1/-1)
tests/t/group_min_max.test (+1/-1)
tests/t/insert_select.test (+1/-1)
tests/t/join.test (+5/-2)
tests/t/join_nested.test (+5/-5)
tests/t/key_diff.test (+1/-1)
tests/t/olap.test (+1/-1)
tests/t/order_by.test (+5/-5)
tests/t/range.test (+2/-2)
tests/t/select.test (+3/-3)
tests/t/select_safe.test (+2/-2)
tests/t/status.test (+1/-1)
tests/t/subselect.test (+2/-1)
tests/t/subselect3.test (+1/-1)
tests/t/subselect_sj.test (+1/-1)
tests/t/subselect_sj2.test (+1/-1)
tests/t/sum_distinct.test (+3/-3)
tests/t/type_blob.test (+1/-1)
tests/t/type_date.test (+2/-2)
tests/t/type_float.test (+1/-1)
tests/t/type_ranges.test (+1/-1)
tests/t/union.test (+1/-1)
tests/t/update.test (+1/-1)
To merge this branch: bzr merge lp:~linuxjedi/drizzle/trunk-bug-713347
Reviewer Review Type Date Requested Status
Drizzle Developers Pending
Review via email: mp+48808@code.launchpad.net

Description of the change

Implicit joins of the form "SELECT * FROM t1, t2" without WHERE or ON now error.

To post a comment you must log in.
2144. By Andrew Hutchings

Merge with trunk

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'drizzled/error.cc'
2--- drizzled/error.cc 2011-02-04 09:28:16 +0000
3+++ drizzled/error.cc 2011-02-07 17:26:32 +0000
4@@ -503,7 +503,7 @@
5 ADD_ERROR_MESSAGE(ER_USE_SQL_BIG_RESULT, N_("Temporary table too large, rerun with SQL_BIG_RESULT."));
6 ADD_ERROR_MESSAGE(ER_UNKNOWN_ENGINE_OPTION, N_("Unknown table engine option key/pair %s = %s."));
7 ADD_ERROR_MESSAGE(ER_UNKNOWN_SCHEMA_OPTION, N_("Unknown schema engine option key/pair %s = %s."));
8-
9+ ADD_ERROR_MESSAGE(ER_CARTESIAN_JOIN_ATTEMPTED, N_("Implicit cartesian join attempted."));
10 ADD_ERROR_MESSAGE(ER_ADMIN_ACCESS, N_("Admin access not allowed from this username/IP address."));
11
12 // User lock/barrier error messages
13
14=== modified file 'drizzled/error_t.h'
15--- drizzled/error_t.h 2011-02-04 09:28:16 +0000
16+++ drizzled/error_t.h 2011-02-07 17:26:32 +0000
17@@ -864,7 +864,8 @@
18 ER_INVALID_DATE_VALUE,
19 ER_TRANSACTIONAL_DDL_NOT_SUPPORTED,
20 ER_USE_DATA_DICTIONARY,
21- ER_TRANSACTION_ALREADY_STARTED
22+ ER_TRANSACTION_ALREADY_STARTED,
23+ ER_CARTESIAN_JOIN_ATTEMPTED
24 };
25
26
27
28=== modified file 'drizzled/join.cc'
29--- drizzled/join.cc 2011-02-04 19:50:47 +0000
30+++ drizzled/join.cc 2011-02-07 17:26:32 +0000
31@@ -4623,6 +4623,12 @@
32 join->full_join= 1;
33 }
34
35+ if (join->full_join and not session->lex->current_select->is_cross and not cond)
36+ {
37+ my_error(ER_CARTESIAN_JOIN_ATTEMPTED, MYF(0));
38+ return 1;
39+ }
40+
41 tmp= NULL;
42 if (cond)
43 tmp= make_cond_for_table(cond,used_tables,current_map, 0);
44@@ -5877,6 +5883,7 @@
45 s->quick=select->quick;
46 s->needed_reg=select->needed_reg;
47 select->quick=0;
48+
49 if (records == 0 && s->table->reginfo.impossible_range)
50 {
51 /*
52
53=== modified file 'drizzled/sql_lex.cc'
54--- drizzled/sql_lex.cc 2011-01-24 23:10:42 +0000
55+++ drizzled/sql_lex.cc 2011-02-07 17:26:32 +0000
56@@ -1397,6 +1397,7 @@
57 select_limit= 0; /* denotes the default limit = HA_POS_ERROR */
58 offset_limit= 0; /* denotes the default offset = 0 */
59 with_sum_func= 0;
60+ is_cross= false;
61 is_correlated= 0;
62 cur_pos_in_select_list= UNDEF_POS;
63 non_agg_fields.empty();
64
65=== modified file 'drizzled/sql_lex.h'
66--- drizzled/sql_lex.h 2011-01-24 23:10:42 +0000
67+++ drizzled/sql_lex.h 2011-02-07 17:26:32 +0000
68@@ -450,6 +450,7 @@
69 n_sum_items(0),
70 n_child_sum_items(0),
71 explicit_limit(0),
72+ is_cross(false),
73 subquery_in_having(0),
74 is_correlated(0),
75 exclude_from_table_unique_test(0),
76@@ -534,6 +535,10 @@
77
78 /* explicit LIMIT clause was used */
79 bool explicit_limit;
80+
81+ /* explicit CROSS JOIN was used */
82+ bool is_cross;
83+
84 /*
85 there are subquery in HAVING clause => we can't close tables before
86 query processing end even if we use temporary table
87
88=== modified file 'drizzled/sql_yacc.yy'
89--- drizzled/sql_yacc.yy 2011-02-05 20:36:14 +0000
90+++ drizzled/sql_yacc.yy 2011-02-07 17:26:32 +0000
91@@ -3518,7 +3518,11 @@
92 normal_join:
93 JOIN_SYM {}
94 | INNER_SYM JOIN_SYM {}
95- | CROSS JOIN_SYM { Lex->is_cross= true; }
96+ | CROSS JOIN_SYM
97+ {
98+ Lex->is_cross= true;
99+ Lex->current_select->is_cross= true;
100+ }
101 ;
102
103 /*
104
105=== modified file 'plugin/innobase/os/os0file.cc'
106--- plugin/innobase/os/os0file.cc 2011-01-08 09:35:11 +0000
107+++ plugin/innobase/os/os0file.cc 2011-02-07 17:26:32 +0000
108@@ -662,7 +662,7 @@
109 if (errno == EAGAIN || errno == EACCES) {
110 fprintf(stderr,
111 "InnoDB: Check that you do not already have"
112- " another mysqld process\n"
113+ " another drizzled process\n"
114 "InnoDB: using the same InnoDB data"
115 " or log files.\n");
116 }
117
118=== modified file 'plugin/innobase/tests/r/func_group_innodb.result'
119--- plugin/innobase/tests/r/func_group_innodb.result 2010-09-12 14:34:27 +0000
120+++ plugin/innobase/tests/r/func_group_innodb.result 2011-02-07 17:26:32 +0000
121@@ -76,11 +76,11 @@
122 select min(7);
123 min(7)
124 7
125-explain select min(7) from t2i join t1i;
126+explain select min(7) from t2i cross join t1i;
127 id select_type table type possible_keys key key_len ref rows Extra
128 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
129 1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer
130-select min(7) from t2i join t1i;
131+select min(7) from t2i cross join t1i;
132 min(7)
133 NULL
134 select max(a) from t1i;
135@@ -92,11 +92,11 @@
136 select max(7);
137 max(7)
138 7
139-explain select max(7) from t2i join t1i;
140+explain select max(7) from t2i cross join t1i;
141 id select_type table type possible_keys key key_len ref rows Extra
142 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
143 1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer
144-select max(7) from t2i join t1i;
145+select max(7) from t2i cross join t1i;
146 max(7)
147 NULL
148 select 1, min(a) from t1i where a=99;
149
150=== modified file 'plugin/innobase/tests/r/index_merge_innodb.result'
151--- plugin/innobase/tests/r/index_merge_innodb.result 2010-12-08 22:35:56 +0000
152+++ plugin/innobase/tests/r/index_merge_innodb.result 2011-02-07 17:26:32 +0000
153@@ -97,7 +97,7 @@
154 create table t2 (a int);
155 insert into t2 values (0),(1),(2),(3),(4),(NULL);
156 insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
157-select A.a, B.a, C.a, D.a, C.a, D.a from t2 A,t2 B,t2 C, t2 D;
158+select A.a, B.a, C.a, D.a, C.a, D.a from t2 A CROSS JOIN t2 B CROSS JOIN t2 C CROSS JOIN t2 D;
159 insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
160 select key1a, key1b, key2a, key2b, key3a, key3b from t1;
161 insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
162
163=== modified file 'plugin/innobase/tests/r/innodb_mysql.result'
164--- plugin/innobase/tests/r/innodb_mysql.result 2011-01-21 01:09:12 +0000
165+++ plugin/innobase/tests/r/innodb_mysql.result 2011-02-07 17:26:32 +0000
166@@ -277,7 +277,7 @@
167 DELETE IGNORE FROM t1 WHERE i = 1;
168 Warnings:
169 Error 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`i`) REFERENCES `t1` (`i`) ON DELETE NO ACTION)
170-SELECT * FROM t1, t2;
171+SELECT * FROM t1 CROSS JOIN t2;
172 i i
173 1 1
174 DROP TABLE t2, t1;
175
176=== modified file 'plugin/innobase/tests/t/func_group_innodb.test'
177--- plugin/innobase/tests/t/func_group_innodb.test 2010-09-12 14:34:27 +0000
178+++ plugin/innobase/tests/t/func_group_innodb.test 2011-02-07 17:26:32 +0000
179@@ -53,14 +53,14 @@
180 select min(a) from t1i;
181 select min(7) from t1i;
182 select min(7);
183-explain select min(7) from t2i join t1i;
184-select min(7) from t2i join t1i;
185+explain select min(7) from t2i cross join t1i;
186+select min(7) from t2i cross join t1i;
187
188 select max(a) from t1i;
189 select max(7) from t1i;
190 select max(7);
191-explain select max(7) from t2i join t1i;
192-select max(7) from t2i join t1i;
193+explain select max(7) from t2i cross join t1i;
194+select max(7) from t2i cross join t1i;
195
196 select 1, min(a) from t1i where a=99;
197 select 1, min(a) from t1i where 1=99;
198
199=== modified file 'plugin/session_dictionary/tests/r/data_dictionary.result'
200--- plugin/session_dictionary/tests/r/data_dictionary.result 2011-01-18 18:10:43 +0000
201+++ plugin/session_dictionary/tests/r/data_dictionary.result 2011-02-07 17:26:32 +0000
202@@ -20,5 +20,5 @@
203 1
204 SELECT ASSERT(ID) FROM processlist;
205 SELECT ID FROM processlist ORDER BY ID;
206-SELECT a.ID FROM processlist as a, processlist as b ORDER BY ID;
207-SELECT a.ID FROM processlist as a, data_dictionary.processlist as b;
208+SELECT a.ID FROM processlist as a CROSS JOIN processlist as b ORDER BY ID;
209+SELECT a.ID FROM processlist as a CROSS JOIN data_dictionary.processlist as b;
210
211=== modified file 'plugin/session_dictionary/tests/t/data_dictionary.test'
212--- plugin/session_dictionary/tests/t/data_dictionary.test 2011-01-18 18:10:43 +0000
213+++ plugin/session_dictionary/tests/t/data_dictionary.test 2011-02-07 17:26:32 +0000
214@@ -18,9 +18,9 @@
215 SELECT ID FROM processlist ORDER BY ID;
216
217 --replace_column 1 #
218-SELECT a.ID FROM processlist as a, processlist as b ORDER BY ID;
219+SELECT a.ID FROM processlist as a CROSS JOIN processlist as b ORDER BY ID;
220
221 --replace_column 1 #
222-SELECT a.ID FROM processlist as a, data_dictionary.processlist as b;
223+SELECT a.ID FROM processlist as a CROSS JOIN data_dictionary.processlist as b;
224
225 --enable_result_log
226
227=== modified file 'plugin/table_cache_dictionary/tests/r/table_cache.result'
228--- plugin/table_cache_dictionary/tests/r/table_cache.result 2011-01-10 01:11:06 +0000
229+++ plugin/table_cache_dictionary/tests/r/table_cache.result 2011-02-07 17:26:32 +0000
230@@ -20,7 +20,7 @@
231 # data_dictionary table_cache # # # 2112 # #
232 create table a ( a int);
233 create table b ( b int);
234-select * FROM a,b;
235+select * FROM a CROSS JOIN b;
236 a b
237 select * FROM data_dictionary.TABLE_CACHE ORDER BY TABLE_SCHEMA, TABLE_NAME;
238 SESSION_ID TABLE_SCHEMA TABLE_NAME VERSION IS_NAME_LOCKED ROWS AVG_ROW_LENGTH TABLE_SIZE AUTO_INCREMENT
239
240=== modified file 'plugin/table_cache_dictionary/tests/r/table_definition_cache.result'
241--- plugin/table_cache_dictionary/tests/r/table_definition_cache.result 2010-12-24 08:41:24 +0000
242+++ plugin/table_cache_dictionary/tests/r/table_definition_cache.result 2011-02-07 17:26:32 +0000
243@@ -16,7 +16,7 @@
244 # table_definition_cache # # #
245 create table a ( a int);
246 create table b ( b int);
247-select * FROM a,b;
248+select * FROM a CROSS JOIN b;
249 a b
250 select * FROM data_dictionary.TABLE_DEFINITION_CACHE ORDER BY TABLE_SCHEMA, TABLE_NAME;
251 TABLE_SCHEMA TABLE_NAME VERSION TABLE_COUNT IS_NAME_LOCKED
252
253=== modified file 'plugin/table_cache_dictionary/tests/t/table_cache.test'
254--- plugin/table_cache_dictionary/tests/t/table_cache.test 2010-03-16 17:52:35 +0000
255+++ plugin/table_cache_dictionary/tests/t/table_cache.test 2011-02-07 17:26:32 +0000
256@@ -10,7 +10,7 @@
257
258 create table a ( a int);
259 create table b ( b int);
260-select * FROM a,b;
261+select * FROM a CROSS JOIN b;
262 --replace_column 1 # 4 # 5 # 6 # 8 # 9 #
263 select * FROM data_dictionary.TABLE_CACHE ORDER BY TABLE_SCHEMA, TABLE_NAME;
264
265
266=== modified file 'plugin/table_cache_dictionary/tests/t/table_definition_cache.test'
267--- plugin/table_cache_dictionary/tests/t/table_definition_cache.test 2010-03-16 01:56:17 +0000
268+++ plugin/table_cache_dictionary/tests/t/table_definition_cache.test 2011-02-07 17:26:32 +0000
269@@ -10,7 +10,7 @@
270
271 create table a ( a int);
272 create table b ( b int);
273-select * FROM a,b;
274+select * FROM a CROSS JOIN b;
275 --replace_column 1 # 3 # 4 # 5 #
276 select * FROM data_dictionary.TABLE_DEFINITION_CACHE ORDER BY TABLE_SCHEMA, TABLE_NAME;
277
278
279=== modified file 'tests/include/index_merge2.inc'
280--- tests/include/index_merge2.inc 2010-12-08 22:35:56 +0000
281+++ tests/include/index_merge2.inc 2011-02-07 17:26:32 +0000
282@@ -118,7 +118,7 @@
283 insert into t2 values (0),(1),(2),(3),(4),(NULL);
284
285 insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
286- select A.a, B.a, C.a, D.a, C.a, D.a from t2 A,t2 B,t2 C, t2 D;
287+ select A.a, B.a, C.a, D.a, C.a, D.a from t2 A CROSS JOIN t2 B CROSS JOIN t2 C CROSS JOIN t2 D;
288 insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
289 select key1a, key1b, key2a, key2b, key3a, key3b from t1;
290 insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
291
292=== modified file 'tests/include/mix1.inc'
293--- tests/include/mix1.inc 2011-02-01 18:23:24 +0000
294+++ tests/include/mix1.inc 2011-02-07 17:26:32 +0000
295@@ -317,7 +317,7 @@
296
297 DELETE IGNORE FROM t1 WHERE i = 1;
298
299-SELECT * FROM t1, t2;
300+SELECT * FROM t1 CROSS JOIN t2;
301
302 DROP TABLE t2, t1;
303
304
305=== modified file 'tests/r/derived.result'
306--- tests/r/derived.result 2009-08-04 02:33:47 +0000
307+++ tests/r/derived.result 2011-02-07 17:26:32 +0000
308@@ -37,7 +37,7 @@
309 ERROR 42S22: Unknown column 'a' in 'where clause'
310 SELECT (SELECT 1) as a FROM (SELECT 1 FROM t1 HAVING a=1) as a;
311 ERROR 42S22: Unknown column 'a' in 'having clause'
312-select * from t1 as x1, (select * from t1) as x2;
313+select * from t1 as x1, (select * from t1) as x2 where x1.a != 0;
314 a b a b
315 1 a 1 a
316 2 b 1 a
317@@ -55,9 +55,9 @@
318 2 b 3 c
319 3 c 3 c
320 3 c 3 c
321-explain select * from t1 as x1, (select * from t1) as x2;
322+explain select * from t1 as x1, (select * from t1) as x2 where x1.a != 0;
323 id select_type table type possible_keys key key_len ref rows Extra
324-1 PRIMARY x1 ALL NULL NULL NULL NULL 4
325+1 PRIMARY x1 ALL NULL NULL NULL NULL 4 Using where
326 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4 Using join buffer
327 2 DERIVED t1 ALL NULL NULL NULL NULL 4
328 drop table if exists t2,t3;
329@@ -140,9 +140,9 @@
330 18 18
331 19 19
332 20 20
333-explain select count(*) from t1 as tt1, (select * from t1) as tt2;
334+explain select count(*) from t1 as tt1, (select * from t1) as tt2 where tt1.a != 0;
335 id select_type table type possible_keys key key_len ref rows Extra
336-1 PRIMARY tt1 index NULL a 4 NULL X Using index
337+1 PRIMARY tt1 range a a 4 NULL X Using where; Using index
338 1 PRIMARY <derived2> ALL NULL NULL NULL NULL X Using join buffer
339 2 DERIVED t1 ALL NULL NULL NULL NULL X
340 drop table t1;
341@@ -225,15 +225,15 @@
342 drop table t1;
343 create table t1 (a int);
344 insert into t1 values (1),(2);
345-select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
346+select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b where a.a != 0;
347 a a
348 1 1
349 2 1
350 1 2
351 2 2
352-explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
353+explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b where a.a != 0;
354 id select_type table type possible_keys key key_len ref rows Extra
355-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
356+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using where
357 1 PRIMARY <derived4> ALL NULL NULL NULL NULL 2 Using join buffer
358 4 DERIVED t1 ALL NULL NULL NULL NULL 2
359 5 UNION t1 ALL NULL NULL NULL NULL 2
360@@ -328,7 +328,7 @@
361 drop table t1, t2, t3;
362 create table t1 (a int);
363 create table t2 (a int);
364-select * from (select * from t1,t2) foo;
365+select * from (select * from t1,t2 where t1.a != 0) foo;
366 a a
367 drop table t1,t2;
368 create table t1 (ID int not null auto_increment,
369
370=== modified file 'tests/r/distinct.result'
371--- tests/r/distinct.result 2010-08-21 22:42:44 +0000
372+++ tests/r/distinct.result 2011-02-07 17:26:32 +0000
373@@ -523,9 +523,7 @@
374 id select_type table type possible_keys key key_len ref rows Extra
375 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
376 EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2;
377-id select_type table type possible_keys key key_len ref rows Extra
378-1 SIMPLE t1_1 ALL NULL NULL NULL NULL 3 Using temporary
379-1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct; Using join buffer
380+ERROR HY000: Implicit cartesian join attempted.
381 EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2
382 WHERE t1_1.a = t1_2.a;
383 id select_type table type possible_keys key key_len ref rows Extra
384
385=== modified file 'tests/r/func_gconcat.result'
386--- tests/r/func_gconcat.result 2010-09-02 18:35:05 +0000
387+++ tests/r/func_gconcat.result 2011-02-07 17:26:32 +0000
388@@ -191,7 +191,7 @@
389 create table t1(id int);
390 create table t2(id int);
391 insert into t1 values(0),(1);
392-select group_concat(t1.id) FROM t1,t2;
393+select group_concat(t1.id) FROM t1,t2 where t2.id < 2;
394 group_concat(t1.id)
395 NULL
396 drop table t1;
397@@ -321,7 +321,7 @@
398 CREATE TABLE t2 ( a int );
399 INSERT INTO t1 VALUES (1), (2);
400 INSERT INTO t2 VALUES (1), (2);
401-SELECT GROUP_CONCAT(t1.a*t2.a ORDER BY t2.a) FROM t1, t2 GROUP BY t1.a;
402+SELECT GROUP_CONCAT(t1.a*t2.a ORDER BY t2.a) FROM t1, t2 WHERE t1.a < 3 GROUP BY t1.a;
403 GROUP_CONCAT(t1.a*t2.a ORDER BY t2.a)
404 1,2
405 2,4
406@@ -861,6 +861,7 @@
407 FROM
408 t1 AS t1,
409 t1 AS t2
410+WHERE t2.a IS NULL
411 GROUP BY 1
412 ) AS s1;
413 d1
414
415=== modified file 'tests/r/func_group.result'
416--- tests/r/func_group.result 2010-12-02 04:36:22 +0000
417+++ tests/r/func_group.result 2011-02-07 17:26:32 +0000
418@@ -176,7 +176,7 @@
419 select max(t1.a1), max(t2.a2) from t1, t2;
420 max(t1.a1) max(t2.a2)
421 NULL NULL
422-select max(t1.a1) from t1, t2;
423+select max(t1.a1) from t1, t2 where t1.a1 > 0;
424 max(t1.a1)
425 NULL
426 select max(t2.a2), max(t1.a1) from t1, t2;
427@@ -190,7 +190,7 @@
428 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
429 insert into t2 values('AAA', 10, 0.5);
430 insert into t2 values('BBB', 20, 1.0);
431-select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2;
432+select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2 where t1.a1 > 0;
433 a1 a2 a1 a2
434 10 NULL AAA 10
435 10 NULL BBB 20
436
437=== modified file 'tests/r/func_in.result'
438--- tests/r/func_in.result 2010-12-20 19:20:57 +0000
439+++ tests/r/func_in.result 2011-02-07 17:26:32 +0000
440@@ -219,7 +219,7 @@
441 create table t1 (a int);
442 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
443 create temporary table t2 (a int, filler char(200), key(a)) engine=myisam;
444-insert into t2 select C.a*2, 'no' from t1 A, t1 B, t1 C;
445+insert into t2 select C.a*2, 'no' from t1 A, t1 B, t1 C where A.a < 10;
446 insert into t2 select C.a*2+1, 'yes' from t1 C;
447 explain
448 select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
449@@ -271,9 +271,9 @@
450 2006-04-25 10:19:00 yes
451 drop table t2;
452 create table t2 (a varchar(10), filler char(200), key(a));
453-insert into t2 select 'foo', 'no' from t1 A, t1 B;
454-insert into t2 select 'barbar', 'no' from t1 A, t1 B;
455-insert into t2 select 'bazbazbaz', 'no' from t1 A, t1 B;
456+insert into t2 select 'foo', 'no' from t1 A, t1 B where A.a < 10;
457+insert into t2 select 'barbar', 'no' from t1 A, t1 B where A.a < 10;
458+insert into t2 select 'bazbazbaz', 'no' from t1 A, t1 B where A.a < 10;
459 insert into t2 values ('fon', '1'), ('fop','1'), ('barbaq','1'),
460 ('barbas','1'), ('bazbazbay', '1'),('zz','1');
461 explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
462@@ -281,9 +281,9 @@
463 1 SIMPLE t2 range a a 43 NULL 5 Using where
464 drop table t2;
465 create table t2 (a decimal(10,5), filler char(200), key(a));
466-insert into t2 select 345.67890, 'no' from t1 A, t1 B;
467-insert into t2 select 43245.34, 'no' from t1 A, t1 B;
468-insert into t2 select 64224.56344, 'no' from t1 A, t1 B;
469+insert into t2 select 345.67890, 'no' from t1 A, t1 B where A.a < 10;
470+insert into t2 select 43245.34, 'no' from t1 A, t1 B where A.a < 10;
471+insert into t2 select 64224.56344, 'no' from t1 A, t1 B where A.a < 10;
472 insert into t2 values (0, '1'), (22334.123,'1'), (33333,'1'),
473 (55555,'1'), (77777, '1');
474 explain
475@@ -304,7 +304,7 @@
476 set @str="update t2 set b=1 where a not in (";
477 select count(*) from (
478 select @str:=concat(@str, @cnt:=@cnt+1, ",")
479-from t1 A, t1 B, t1 C, t1 D) Z;
480+from t1 A, t1 B, t1 C, t1 D where A.a < 10) Z;
481 count(*)
482 10000
483 set @str:=concat(@str, "10000)");
484
485=== modified file 'tests/r/global_read_constraints.result'
486--- tests/r/global_read_constraints.result 2010-11-01 20:27:03 +0000
487+++ tests/r/global_read_constraints.result 2011-02-07 17:26:32 +0000
488@@ -28,5 +28,5 @@
489 CREATE TABLE t2 SELECT * FROM t1;
490 create temporary table t3 (a varchar(255), b varchar(255)) engine=myisam;
491 insert into t3 select * from t1;
492-select SQL_BIG_RESULT * from t3, (select * from t1) as t4;
493+select SQL_BIG_RESULT * from t3, (select * from t1) as t4 where t3.a != '';
494 ERROR HY000: Global read memory constraint hit; increase read-buffer-threshold
495
496=== modified file 'tests/r/group_by.result'
497--- tests/r/group_by.result 2010-08-19 01:24:09 +0000
498+++ tests/r/group_by.result 2011-02-07 17:26:32 +0000
499@@ -895,7 +895,7 @@
500 f1 f2
501 select * from t1 group by f1, f2;
502 f1 f2
503-select t1.f1,t.* from t1, t1 t group by 1;
504+select t1.f1,t.* from t1, t1 t where t1.f1 >= 0 group by 1;
505 f1 f1 f2
506 drop table t1;
507 CREATE TABLE t1(
508
509=== modified file 'tests/r/group_min_max.result'
510--- tests/r/group_min_max.result 2010-12-02 04:36:22 +0000
511+++ tests/r/group_min_max.result 2011-02-07 17:26:32 +0000
512@@ -1608,7 +1608,7 @@
513 b c b c
514 a d a d
515 b d b d
516-select distinct t1.a1,t2.a1 from t1,t2;
517+select distinct t1.a1,t2.a1 from t1,t2 where t1.a1 >= '';
518 a1 a1
519 a a
520 a b
521
522=== modified file 'tests/r/insert_select.result'
523--- tests/r/insert_select.result 2010-02-15 18:29:31 +0000
524+++ tests/r/insert_select.result 2011-02-07 17:26:32 +0000
525@@ -130,7 +130,7 @@
526 3
527 4
528 5
529-insert into t1 select t2.a from t1,t2;
530+insert into t1 select t2.a from t1,t2 where t1.a > 0;
531 select * from t1;
532 a
533 1
534
535=== modified file 'tests/r/join.result'
536--- tests/r/join.result 2011-01-05 07:43:57 +0000
537+++ tests/r/join.result 2011-02-07 17:26:32 +0000
538@@ -4,11 +4,9 @@
539 INSERT INTO t1 VALUES (1);
540 INSERT INTO t2 VALUES (2);
541 SELECT * FROM t1 JOIN t2;
542-S1 S1
543-1 2
544+ERROR HY000: Implicit cartesian join attempted.
545 SELECT * FROM t1 INNER JOIN t2;
546-S1 S1
547-1 2
548+ERROR HY000: Implicit cartesian join attempted.
549 SELECT * from t1 JOIN t2 USING (S1);
550 S1
551 SELECT * FROM t1 INNER JOIN t2 USING (S1);
552@@ -299,7 +297,7 @@
553 CREATE TABLE t2 (b int);
554 CREATE TABLE t3 (c int);
555 SELECT * FROM t1 NATURAL JOIN t2 NATURAL JOIN t3;
556-a b c
557+ERROR HY000: Implicit cartesian join attempted.
558 DROP TABLE t1, t2, t3;
559 create table t1 (i int);
560 create table t2 (i int);
561@@ -774,13 +772,13 @@
562 create table t2 (a int, b int, filler char(100), key(a), key(b));
563 create table t3 (a int, b int, filler char(100), key(a), key(b));
564 insert into t2
565-select @a:= A.a + 10*(B.a + 10*C.a), @a, 'filler' from t1 A, t1 B, t1 C;
566+select @a:= A.a + 10*(B.a + 10*C.a), @a, 'filler' from t1 A, t1 B, t1 C where B.a >= 0;
567 insert into t3 select * from t2 where a < 800;
568 drop table t1, t2, t3;
569 create table t1 (a int);
570 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
571 create table t2 (a int, b int, primary key(a));
572-insert into t2 select @v:=A.a+10*B.a, @v from t1 A, t1 B;
573+insert into t2 select @v:=A.a+10*B.a, @v from t1 A, t1 B where B.a >= 0;
574 explain select * from t1;
575 id select_type table type possible_keys key key_len ref rows Extra
576 1 SIMPLE t1 ALL NULL NULL NULL NULL 10
577
578=== modified file 'tests/r/join_nested.result'
579--- tests/r/join_nested.result 2010-12-02 05:06:19 +0000
580+++ tests/r/join_nested.result 2011-02-07 17:26:32 +0000
581@@ -37,11 +37,7 @@
582 4 2
583 SELECT t3.a,t3.b,t4.a,t4.b
584 FROM t3,t4;
585-a b a b
586-1 2 3 2
587-1 2 4 2
588-2 2 3 2
589-2 2 4 2
590+ERROR HY000: Implicit cartesian join attempted.
591 SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
592 FROM t2
593 LEFT JOIN
594@@ -107,19 +103,7 @@
595 3 3
596 SELECT t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
597 FROM t3,t4,t5;
598-a b a b a b
599-1 2 3 2 2 2
600-1 2 3 2 3 1
601-1 2 3 2 3 3
602-1 2 4 2 2 2
603-1 2 4 2 3 1
604-1 2 4 2 3 3
605-2 2 3 2 2 2
606-2 2 3 2 3 1
607-2 2 3 2 3 3
608-2 2 4 2 2 2
609-2 2 4 2 3 1
610-2 2 4 2 3 3
611+ERROR HY000: Implicit cartesian join attempted.
612 SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
613 FROM t2
614 LEFT JOIN
615@@ -208,7 +192,7 @@
616 1 1
617 2 2
618 SELECT t6.a,t6.b,t7.a,t7.b
619-FROM t6,t7;
620+FROM t6 CROSS JOIN t7;
621 a b a b
622 3 2 1 1
623 3 2 2 2
624@@ -766,7 +750,7 @@
625 2 2 4 2 2 2
626 2 2 5 3 NULL NULL
627 SELECT t3.a,t3.b,t4.a,t4.b
628-FROM t3,t4;
629+FROM t3 CROSS JOIN t4;
630 a b a b
631 1 2 3 2
632 2 2 3 2
633@@ -1323,7 +1307,7 @@
634 create table t1 (a int);
635 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
636 create table t2 (a int, filler char(100), key(a));
637-insert into t2 select A.a + 10*B.a, '' from t1 A, t1 B;
638+insert into t2 select A.a + 10*B.a, '' from t1 A CROSS JOIN t1 B;
639 create table t3 like t2;
640 insert into t3 select * from t2;
641 explain select * from t1 left join
642
643=== modified file 'tests/r/key_diff.result'
644--- tests/r/key_diff.result 2010-08-21 22:42:44 +0000
645+++ tests/r/key_diff.result 2011-02-07 17:26:32 +0000
646@@ -6,7 +6,7 @@
647 KEY (b)
648 );
649 INSERT INTO t1 VALUES ('A','B'),('b','A'),('C','c'),('D','E'),('a','a');
650-select * from t1,t1 as t2;
651+select * from t1 CROSS JOIN t1 as t2;
652 a b a b
653 A B A B
654 A B C c
655
656=== modified file 'tests/r/olap.result'
657--- tests/r/olap.result 2008-12-19 21:34:33 +0000
658+++ tests/r/olap.result 2011-02-07 17:26:32 +0000
659@@ -269,7 +269,7 @@
660 i COUNT(*)
661 100 1
662 NULL 1
663-SELECT t1.i, t2.i, COUNT(*) FROM t1,t2 GROUP BY t1.i,t2.i WITH ROLLUP;
664+SELECT t1.i, t2.i, COUNT(*) FROM t1 CROSS JOIN t2 GROUP BY t1.i,t2.i WITH ROLLUP;
665 i i COUNT(*)
666 100 100 1
667 100 200 1
668
669=== modified file 'tests/r/order_by.result'
670--- tests/r/order_by.result 2010-12-07 09:12:12 +0000
671+++ tests/r/order_by.result 2011-02-07 17:26:32 +0000
672@@ -1862,11 +1862,11 @@
673 ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
674 DROP TABLE bug25126;
675 CREATE TABLE t1 (a int);
676-SELECT p.a AS val, q.a AS val1 FROM t1 p, t1 q ORDER BY val > 1;
677+SELECT p.a AS val, q.a AS val1 FROM t1 p CROSS JOIN t1 q ORDER BY val > 1;
678 val val1
679-SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val;
680+SELECT p.a AS val, q.a AS val FROM t1 p CROSS JOIN t1 q ORDER BY val;
681 ERROR 23000: Column 'val' in order clause is ambiguous
682-SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1;
683+SELECT p.a AS val, q.a AS val FROM t1 p CROSS JOIN t1 q ORDER BY val > 1;
684 ERROR 23000: Column 'val' in order clause is ambiguous
685 DROP TABLE t1;
686 CREATE TABLE t1 (a int);
687
688=== modified file 'tests/r/range.result'
689--- tests/r/range.result 2010-12-20 19:20:57 +0000
690+++ tests/r/range.result 2011-02-07 17:26:32 +0000
691@@ -657,7 +657,7 @@
692 filler char(82),
693 PRIMARY KEY (pk1,pk2,pk3,pk4)
694 );
695-insert into t2 select 1, A.a+10*B.a, 432, 44, 'fillerZ' from t1 A, t1 B;
696+insert into t2 select 1, A.a+10*B.a, 432, 44, 'fillerZ' from t1 A CROSS JOIN t1 B;
697 INSERT INTO t2 VALUES (2621, 2635, 0, 0,'filler'), (2621, 2635, 1, 0,'filler'),
698 (2621, 2635, 10, 0,'filler'), (2621, 2635, 11, 0,'filler'),
699 (2621, 2635, 14, 0,'filler'), (2621, 2635, 1000015, 0,'filler');
700@@ -969,7 +969,7 @@
701 insert into t1 values ('a ','');
702 insert into t1 values ('a ', '');
703 insert into t1 select concat('a', 1000 + A.a + 10 * (B.a + 10 * C.a)), ''
704- from t3 A, t3 B, t3 C;
705+ from t3 A CROSS JOIN t3 B CROSS JOIN t3 C;
706 create table t2 (a varchar(10), filler char(200), key(a));
707 insert into t2 select * from t1;
708 explain select * from t1 where a between 'a' and 'a ';
709
710=== modified file 'tests/r/select.result'
711--- tests/r/select.result 2011-01-26 21:05:29 +0000
712+++ tests/r/select.result 2011-02-07 17:26:32 +0000
713@@ -1266,7 +1266,7 @@
714 58 company 8
715 65 company 9
716 68 company 10
717-select * from t1,t1 t12;
718+select * from t1 CROSS JOIN t1 t12;
719 Period Varor_period Period Varor_period
720 9410 9412 9410 9412
721 select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 250505 and t22.fld1 >= 250501 and t22.fld1 <= 250505;
722@@ -2932,7 +2932,7 @@
723 create table t1 (a int);
724 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
725 create table t2 (a int, b int, c int, e int, primary key(a,b,c));
726-insert into t2 select A.a, B.a, C.a, C.a from t1 A, t1 B, t1 C;
727+insert into t2 select A.a, B.a, C.a, C.a from t1 A CROSS JOIN t1 B CROSS JOIN t1 C;
728 analyze table t2;
729 Table Op Msg_type Msg_text
730 test.t2 analyze status OK
731@@ -3555,7 +3555,7 @@
732 c34 INT DEFAULT 0,
733 KEY (c33, c34, c32));
734 INSERT INTO t1 values (),(),(),(),();
735-INSERT INTO t2 SELECT a.c11, b.c11 FROM t1 a, t1 b;
736+INSERT INTO t2 SELECT a.c11, b.c11 FROM t1 a CROSS JOIN t1 b;
737 INSERT INTO t3 VALUES (1, 1, 1, 0),
738 (2, 2, 0, 0),
739 (3, 3, 1, 0),
740
741=== modified file 'tests/r/select_safe.result'
742--- tests/r/select_safe.result 2010-08-09 16:31:29 +0000
743+++ tests/r/select_safe.result 2011-02-07 17:26:32 +0000
744@@ -13,7 +13,7 @@
745 1 test
746 2 test2
747 update t1 set b="a" where a=1;
748-select 1 from t1,t1 as t2,t1 as t3;
749+select 1 from t1 CROSS JOIN t1 as t2 CROSS JOIN t1 as t3;
750 1
751 1
752 1
753@@ -24,7 +24,7 @@
754 delete from t1;
755 delete from t1 where b="test";
756 delete from t1 where a+0=1;
757-select 1 from t1,t1 as t2,t1 as t3,t1 as t4,t1 as t5;
758+select 1 from t1 CROSS JOIN t1 as t2 CROSS JOIN t1 as t3 CROSS JOIN t1 as t4 CROSS JOIN t1 as t5;
759 1
760 update t1 set b="a" limit 1;
761 update t1 set b="a" where b="b" limit 2;
762
763=== modified file 'tests/r/status.result'
764--- tests/r/status.result 2011-01-18 23:35:32 +0000
765+++ tests/r/status.result 2011-02-07 17:26:32 +0000
766@@ -80,7 +80,7 @@
767 SHOW SESSION STATUS LIKE 'Last_query_cost';
768 Variable_name Value
769 Last_query_cost 0
770-SELECT * FROM t1 a, t1 b LIMIT 1;
771+SELECT * FROM t1 a CROSS JOIN t1 b LIMIT 1;
772 a a
773 1 1
774 SHOW SESSION STATUS LIKE 'Last_query_cost';
775
776=== modified file 'tests/r/subselect.result'
777--- tests/r/subselect.result 2011-02-04 08:47:29 +0000
778+++ tests/r/subselect.result 2011-02-07 17:26:32 +0000
779@@ -4524,17 +4524,9 @@
780 SELECT * FROM t1 JOIN ((t1 t1a)) t1a ON 1;
781 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your Drizzle server version for the right syntax to use near 't1a ON 1' at line 1
782 SELECT * FROM t1 JOIN (t1 t1a) ON 1;
783-a a
784-1 1
785-1 2
786-2 1
787-2 2
788+ERROR HY000: Implicit cartesian join attempted.
789 SELECT * FROM t1 JOIN ((t1 t1a)) ON 1;
790-a a
791-1 1
792-2 1
793-1 2
794-2 2
795+ERROR HY000: Implicit cartesian join attempted.
796 SELECT * FROM (t1 t1a);
797 a
798 1
799
800=== modified file 'tests/r/subselect3.result'
801--- tests/r/subselect3.result 2010-10-25 23:13:58 +0000
802+++ tests/r/subselect3.result 2011-02-07 17:26:32 +0000
803@@ -247,7 +247,7 @@
804 NULL 1 100 0
805 NULL 2 100 NULL
806 create table t4 (x int);
807-insert into t4 select A.a + 10*B.a from t1 A, t1 B;
808+insert into t4 select A.a + 10*B.a from t1 A CROSS JOIN t1 B;
809 explain extended
810 select a,b, oref,
811 (a,b) in (select a,b from t1,t4 where c=t2.oref) Z
812
813=== modified file 'tests/r/subselect_sj.result'
814--- tests/r/subselect_sj.result 2009-06-16 01:16:01 +0000
815+++ tests/r/subselect_sj.result 2011-02-07 17:26:32 +0000
816@@ -70,7 +70,7 @@
817 0 0 0 0
818 1 1 1 1
819 2 2 2 2
820-insert into t1 select (A.a + 10 * B.a),1 from t0 A, t0 B;
821+insert into t1 select (A.a + 10 * B.a),1 from t0 A CROSS JOIN t0 B;
822 explain extended select * from t1 where a in (select pk from t10 where pk<3);
823 id select_type table type possible_keys key key_len ref rows filtered Extra
824 1 PRIMARY t1 ALL NULL NULL NULL NULL 103 100.00 Using where
825
826=== modified file 'tests/r/subselect_sj2.result'
827--- tests/r/subselect_sj2.result 2009-10-20 20:39:01 +0000
828+++ tests/r/subselect_sj2.result 2011-02-07 17:26:32 +0000
829@@ -353,7 +353,7 @@
830 c1
831 2009-10-22
832 2142-10-22
833-explain select 1 from t2 where c2 in (select 1 from t3, t2) and c1 in (select convert(c6,char(1)) from t2);
834+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);
835 id select_type table type possible_keys key key_len ref rows Extra
836 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
837 3 SUBQUERY t2 ALL NULL NULL NULL NULL 1
838
839=== modified file 'tests/r/sum_distinct.result'
840--- tests/r/sum_distinct.result 2010-04-20 18:23:07 +0000
841+++ tests/r/sum_distinct.result 2011-02-07 17:26:32 +0000
842@@ -47,7 +47,7 @@
843 SUM(DISTINCT LENGTH(g1.name)) s1,
844 SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
845 SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
846-FROM t1 g1, t1 g2, t1 g3;
847+FROM t1 g1 CROSS JOIN t1 g2 CROSS JOIN t1 g3;
848 s1 s2 s3
849 42 0 7
850 SELECT
851@@ -55,7 +55,7 @@
852 SUM(DISTINCT LENGTH(g1.name)) s1,
853 SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
854 SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
855-FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
856+FROM t1 g1 CROSS JOIN t1 g2 CROSS JOIN t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
857 s1 s2 s3
858 42 0 NULL
859 42 0 7
860@@ -75,7 +75,7 @@
861 SUM(DISTINCT LENGTH(g1.name)) s1,
862 SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
863 SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
864-FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
865+FROM t1 g1 CROSS JOIN t1 g2 CROSS JOIN t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
866 s1 s2 s3
867 42 0 NULL
868 42 0 7
869
870=== modified file 'tests/r/type_blob.result'
871--- tests/r/type_blob.result 2010-09-10 10:05:56 +0000
872+++ tests/r/type_blob.result 2011-02-07 17:26:32 +0000
873@@ -43,7 +43,7 @@
874 select last_insert_id();
875 last_insert_id()
876 3
877-select * from t1,t1 as t2;
878+select * from t1 CROSS JOIN t1 as t2;
879 nr b str nr b str
880 1 a A 1 a A
881 1 a A 2 bbb BBB
882
883=== modified file 'tests/r/type_date.result'
884--- tests/r/type_date.result 2011-01-26 21:05:29 +0000
885+++ tests/r/type_date.result 2011-02-07 17:26:32 +0000
886@@ -65,11 +65,11 @@
887 INSERT INTO t1 VALUES(1);
888 CREATE TABLE t2(GMT VARCHAR(32));
889 INSERT INTO t2 VALUES('GMT-0800');
890-SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) FROM t1, t2 GROUP BY t1.AFIELD;
891+SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) FROM t1 CROSS JOIN t2 GROUP BY t1.AFIELD;
892 DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT))
893 Wed, 06 March 2002 10:11:12 GMT-0800
894 INSERT INTO t1 VALUES(1);
895-SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)), DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) FROM t1,t2 GROUP BY t1.AFIELD;
896+SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)), DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) FROM t1 CROSS JOIN t2 GROUP BY t1.AFIELD;
897 DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT))
898 Wed, 06 March 2002 10:11:12 GMT-0800 Wed, 06 March 2002 10:11:12 GMT-0800
899 drop table t1,t2;
900
901=== modified file 'tests/r/type_float.result'
902--- tests/r/type_float.result 2010-09-02 18:35:05 +0000
903+++ tests/r/type_float.result 2011-02-07 17:26:32 +0000
904@@ -219,7 +219,7 @@
905 desc t2;
906 Field Type Null Default Default_is_NULL On_Update
907 y DECIMAL NO NO
908-create table t3 select x+y a from t1,t2;
909+create table t3 select x+y a from t1 CROSS JOIN t2;
910 show warnings;
911 Level Code Message
912 desc t3;
913
914=== modified file 'tests/r/type_ranges.result'
915--- tests/r/type_ranges.result 2010-09-10 10:05:56 +0000
916+++ tests/r/type_ranges.result 2011-02-07 17:26:32 +0000
917@@ -206,7 +206,7 @@
918 create table t2 select * from t1;
919 create table t3 select * from t1, t2;
920 ERROR 42S21: Duplicate column name 'c'
921-create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1, t2;
922+create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1 CROSS JOIN t2;
923 show columns from t3;
924 Field Type Null Default Default_is_NULL On_Update
925 c1 INTEGER YES YES
926
927=== modified file 'tests/r/union.result'
928--- tests/r/union.result 2011-02-04 08:47:29 +0000
929+++ tests/r/union.result 2011-02-07 17:26:32 +0000
930@@ -515,7 +515,7 @@
931 insert into t2 (group_name) values ('Group A');
932 insert into t2 (group_name) values ('Group B');
933 insert into t3 (user_id, group_id) values (1,1);
934-select 1 'is_in_group', a.user_name, c.group_name, b.id from t1 a, t3 b, t2 c where a.id = b.user_id and b.group_id = c.id UNION select 0 'is_in_group', a.user_name, c.group_name, null from t1 a, t2 c;
935+select 1 'is_in_group', a.user_name, c.group_name, b.id from t1 a, t3 b, t2 c where a.id = b.user_id and b.group_id = c.id UNION select 0 'is_in_group', a.user_name, c.group_name, null from t1 a CROSS JOIN t2 c;
936 is_in_group user_name group_name id
937 1 Tester Group A 1
938 0 Tester Group A NULL
939
940=== modified file 'tests/r/update.result'
941--- tests/r/update.result 2011-01-05 07:43:57 +0000
942+++ tests/r/update.result 2011-02-07 17:26:32 +0000
943@@ -277,7 +277,7 @@
944 create table t1 (a int);
945 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
946 create table t2 (a int, filler1 char(200), filler2 char(200), key(a));
947-insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B;
948+insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A CROSS JOIN t1 B;
949 flush status;
950 update t2 set a=3 where a=2;
951 show status like 'handler_read%';
952
953=== modified file 'tests/suite/jp/r/join_utf8.result'
954--- tests/suite/jp/r/join_utf8.result 2010-10-25 03:09:38 +0000
955+++ tests/suite/jp/r/join_utf8.result 2011-02-07 17:26:32 +0000
956@@ -42,16 +42,6 @@
957 INSERT INTO `T8a` VALUES ('あ'),('か'),('さ');
958 INSERT INTO `T8b` VALUES ('あ');
959 INSERT INTO `T9a` VALUES ('龔'),('龖'),('龗');
960-SELECT * FROM `T1a` JOIN `T1b`;
961-C1 C1
962-ア ア
963-カ ア
964-サ ア
965-SELECT * FROM `T1a` INNER JOIN `T1b`;
966-C1 C1
967-ア ア
968-カ ア
969-サ ア
970 SELECT * FROM `T1a` JOIN `T1b` USING (`C1`);
971 C1
972
973@@ -83,16 +73,6 @@
974 ア ア
975 NULL カ
976 NULL サ
977-SELECT * FROM `T2a` JOIN `T2b`;
978-C1 C1
979-あ あ
980-か あ
981-さ あ
982-SELECT * FROM `T2a` INNER JOIN `T2b`;
983-C1 C1
984-あ あ
985-か あ
986-さ あ
987 SELECT * FROM `T2a` JOIN `T2b` USING (`C1`);
988 C1
989
990@@ -124,16 +104,6 @@
991 あ あ
992 NULL か
993 NULL さ
994-SELECT * FROM `T3a` JOIN `T3b`;
995-C1 C1
996-龔 龔
997-龖 龔
998-龗 龔
999-SELECT * FROM `T3a` INNER JOIN `T3b`;
1000-C1 C1
1001-龔 龔
1002-龖 龔
1003-龗 龔
1004 SELECT * FROM `T3a` JOIN `T3b` USING (`C1`);
1005 C1
1006
1007
1008=== modified file 'tests/suite/jp/t/join_utf8.test'
1009--- tests/suite/jp/t/join_utf8.test 2010-10-25 03:09:38 +0000
1010+++ tests/suite/jp/t/join_utf8.test 2011-02-07 17:26:32 +0000
1011@@ -57,8 +57,6 @@
1012 INSERT INTO `T9a` VALUES ('龔'),('龖'),('龗');
1013
1014 #Test for innodb
1015-SELECT * FROM `T1a` JOIN `T1b`;
1016-SELECT * FROM `T1a` INNER JOIN `T1b`;
1017 SELECT * FROM `T1a` JOIN `T1b` USING (`C1`);
1018 SELECT * FROM `T1a` INNER JOIN `T1b` USING (`C1`);
1019 SELECT * FROM `T1a` CROSS JOIN `T1b`;
1020@@ -66,8 +64,6 @@
1021 SELECT * FROM `T1a` LEFT JOIN `T1b` ON (`T1a`.`C1` = `T1b`.`C1`);
1022 SELECT * FROM `T1b` RIGHT JOIN `T1a` USING (`C1`);
1023 SELECT * FROM `T1b` RIGHT JOIN `T1a` ON (`T1a`.`C1` = `T1b`.`C1`);
1024-SELECT * FROM `T2a` JOIN `T2b`;
1025-SELECT * FROM `T2a` INNER JOIN `T2b`;
1026 SELECT * FROM `T2a` JOIN `T2b` USING (`C1`);
1027 SELECT * FROM `T2a` INNER JOIN `T2b` USING (`C1`);
1028 SELECT * FROM `T2a` CROSS JOIN `T2b`;
1029@@ -75,8 +71,6 @@
1030 SELECT * FROM `T2a` LEFT JOIN `T2b` ON (`T2a`.`C1` = `T2b`.`C1`);
1031 SELECT * FROM `T2b` RIGHT JOIN `T2a` USING (`C1`);
1032 SELECT * FROM `T2b` RIGHT JOIN `T2a` ON (`T2a`.`C1` = `T2b`.`C1`);
1033-SELECT * FROM `T3a` JOIN `T3b`;
1034-SELECT * FROM `T3a` INNER JOIN `T3b`;
1035 SELECT * FROM `T3a` JOIN `T3b` USING (`C1`);
1036 SELECT * FROM `T3a` INNER JOIN `T3b` USING (`C1`);
1037 SELECT * FROM `T3a` CROSS JOIN `T3b`;
1038
1039=== modified file 'tests/t/derived.test'
1040--- tests/t/derived.test 2011-01-26 00:31:58 +0000
1041+++ tests/t/derived.test 2011-02-07 17:26:32 +0000
1042@@ -28,8 +28,8 @@
1043 --error ER_BAD_FIELD_ERROR
1044 SELECT (SELECT 1) as a FROM (SELECT 1 FROM t1 HAVING a=1) as a;
1045 --sort_result
1046-select * from t1 as x1, (select * from t1) as x2;
1047-explain select * from t1 as x1, (select * from t1) as x2;
1048+select * from t1 as x1, (select * from t1) as x2 where x1.a != 0;
1049+explain select * from t1 as x1, (select * from t1) as x2 where x1.a != 0;
1050 drop table if exists t2,t3;
1051 select * from (select 1) as a;
1052 select a from (select 1 as a) as b;
1053@@ -58,7 +58,7 @@
1054 enable_query_log;
1055 SELECT * FROM (SELECT * FROM t1) as b ORDER BY a ASC LIMIT 0,20;
1056 --replace_column 9 X
1057-explain select count(*) from t1 as tt1, (select * from t1) as tt2;
1058+explain select count(*) from t1 as tt1, (select * from t1) as tt2 where tt1.a != 0;
1059 drop table t1;
1060 SELECT * FROM (SELECT (SELECT * FROM (SELECT 1 as a) as a )) as b;
1061 select * from (select 1 as a) b left join (select 2 as a) c using(a);
1062@@ -125,8 +125,8 @@
1063 create table t1 (a int);
1064 insert into t1 values (1),(2);
1065 --sort_result
1066-select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
1067-explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
1068+select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b where a.a != 0;
1069+explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b where a.a != 0;
1070 drop table t1;
1071
1072 #
1073@@ -221,7 +221,7 @@
1074 #
1075 create table t1 (a int);
1076 create table t2 (a int);
1077-select * from (select * from t1,t2) foo;
1078+select * from (select * from t1,t2 where t1.a != 0) foo;
1079 drop table t1,t2;
1080
1081 #
1082
1083=== modified file 'tests/t/distinct.test'
1084--- tests/t/distinct.test 2010-08-21 22:42:44 +0000
1085+++ tests/t/distinct.test 2011-02-07 17:26:32 +0000
1086@@ -345,6 +345,7 @@
1087 INSERT INTO t1 VALUES (1,1), (2,1), (3,1);
1088 EXPLAIN SELECT DISTINCT a FROM t1;
1089 EXPLAIN SELECT DISTINCT a,b FROM t1;
1090+--error ER_CARTESIAN_JOIN_ATTEMPTED
1091 EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2;
1092 --sorted_result
1093 EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2
1094
1095=== modified file 'tests/t/func_gconcat.test'
1096--- tests/t/func_gconcat.test 2010-08-26 21:56:15 +0000
1097+++ tests/t/func_gconcat.test 2011-02-07 17:26:32 +0000
1098@@ -104,7 +104,7 @@
1099 create table t1(id int);
1100 create table t2(id int);
1101 insert into t1 values(0),(1);
1102-select group_concat(t1.id) FROM t1,t2;
1103+select group_concat(t1.id) FROM t1,t2 where t2.id < 2;
1104 drop table t1;
1105 drop table t2;
1106
1107@@ -190,7 +190,7 @@
1108 CREATE TABLE t2 ( a int );
1109 INSERT INTO t1 VALUES (1), (2);
1110 INSERT INTO t2 VALUES (1), (2);
1111-SELECT GROUP_CONCAT(t1.a*t2.a ORDER BY t2.a) FROM t1, t2 GROUP BY t1.a;
1112+SELECT GROUP_CONCAT(t1.a*t2.a ORDER BY t2.a) FROM t1, t2 WHERE t1.a < 3 GROUP BY t1.a;
1113 DROP TABLE t1, t2;
1114
1115 #
1116@@ -602,6 +602,7 @@
1117 FROM
1118 t1 AS t1,
1119 t1 AS t2
1120+ WHERE t2.a IS NULL
1121 GROUP BY 1
1122 ) AS s1;
1123 DROP TABLE t1;
1124
1125=== modified file 'tests/t/func_group.test'
1126--- tests/t/func_group.test 2010-08-23 19:49:47 +0000
1127+++ tests/t/func_group.test 2011-02-07 17:26:32 +0000
1128@@ -120,7 +120,7 @@
1129 # The following returned NULL in 4.0.10
1130 select min(a2) from t1;
1131 select max(t1.a1), max(t2.a2) from t1, t2;
1132-select max(t1.a1) from t1, t2;
1133+select max(t1.a1) from t1, t2 where t1.a1 > 0;
1134 select max(t2.a2), max(t1.a1) from t1, t2;
1135
1136 explain select min(a2) from t1;
1137@@ -129,7 +129,7 @@
1138 insert into t2 values('AAA', 10, 0.5);
1139 insert into t2 values('BBB', 20, 1.0);
1140 --sorted_result
1141-select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2;
1142+select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2 where t1.a1 > 0;
1143
1144 select max(t1.a1), max(t2.a1) from t1, t2 where t2.a2=9;
1145 select max(t2.a1), max(t1.a1) from t1, t2 where t2.a2=9;
1146
1147=== modified file 'tests/t/func_in.test'
1148--- tests/t/func_in.test 2010-12-20 19:20:57 +0000
1149+++ tests/t/func_in.test 2011-02-07 17:26:32 +0000
1150@@ -142,7 +142,7 @@
1151 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
1152 create temporary table t2 (a int, filler char(200), key(a)) engine=myisam;
1153
1154-insert into t2 select C.a*2, 'no' from t1 A, t1 B, t1 C;
1155+insert into t2 select C.a*2, 'no' from t1 A, t1 B, t1 C where A.a < 10;
1156 insert into t2 select C.a*2+1, 'yes' from t1 C;
1157
1158 explain
1159@@ -180,9 +180,9 @@
1160 #
1161 create table t2 (a varchar(10), filler char(200), key(a));
1162
1163-insert into t2 select 'foo', 'no' from t1 A, t1 B;
1164-insert into t2 select 'barbar', 'no' from t1 A, t1 B;
1165-insert into t2 select 'bazbazbaz', 'no' from t1 A, t1 B;
1166+insert into t2 select 'foo', 'no' from t1 A, t1 B where A.a < 10;
1167+insert into t2 select 'barbar', 'no' from t1 A, t1 B where A.a < 10;
1168+insert into t2 select 'bazbazbaz', 'no' from t1 A, t1 B where A.a < 10;
1169
1170 insert into t2 values ('fon', '1'), ('fop','1'), ('barbaq','1'),
1171 ('barbas','1'), ('bazbazbay', '1'),('zz','1');
1172@@ -196,9 +196,9 @@
1173 #
1174 create table t2 (a decimal(10,5), filler char(200), key(a));
1175
1176-insert into t2 select 345.67890, 'no' from t1 A, t1 B;
1177-insert into t2 select 43245.34, 'no' from t1 A, t1 B;
1178-insert into t2 select 64224.56344, 'no' from t1 A, t1 B;
1179+insert into t2 select 345.67890, 'no' from t1 A, t1 B where A.a < 10;
1180+insert into t2 select 43245.34, 'no' from t1 A, t1 B where A.a < 10;
1181+insert into t2 select 64224.56344, 'no' from t1 A, t1 B where A.a < 10;
1182
1183 insert into t2 values (0, '1'), (22334.123,'1'), (33333,'1'),
1184 (55555,'1'), (77777, '1');
1185@@ -217,7 +217,7 @@
1186 set @str="update t2 set b=1 where a not in (";
1187 select count(*) from (
1188 select @str:=concat(@str, @cnt:=@cnt+1, ",")
1189- from t1 A, t1 B, t1 C, t1 D) Z;
1190+ from t1 A, t1 B, t1 C, t1 D where A.a < 10) Z;
1191
1192 set @str:=concat(@str, "10000)");
1193 select substr(@str, 1, 50);
1194
1195=== modified file 'tests/t/global_read_constraints.test'
1196--- tests/t/global_read_constraints.test 2011-01-24 04:22:18 +0000
1197+++ tests/t/global_read_constraints.test 2011-02-07 17:26:32 +0000
1198@@ -6,4 +6,4 @@
1199 create temporary table t3 (a varchar(255), b varchar(255)) engine=myisam;
1200 insert into t3 select * from t1;
1201 --error ER_OUT_OF_GLOBAL_READMEMORY
1202-select SQL_BIG_RESULT * from t3, (select * from t1) as t4;
1203+select SQL_BIG_RESULT * from t3, (select * from t1) as t4 where t3.a != '';
1204
1205=== modified file 'tests/t/group_by.test'
1206--- tests/t/group_by.test 2011-01-26 00:31:58 +0000
1207+++ tests/t/group_by.test 2011-02-07 17:26:32 +0000
1208@@ -750,7 +750,7 @@
1209 select * from t1 group by f1;
1210 select * from t1 group by f2;
1211 select * from t1 group by f1, f2;
1212-select t1.f1,t.* from t1, t1 t group by 1;
1213+select t1.f1,t.* from t1, t1 t where t1.f1 >= 0 group by 1;
1214 drop table t1;
1215
1216 #
1217
1218=== modified file 'tests/t/group_min_max.test'
1219--- tests/t/group_min_max.test 2010-08-21 22:42:44 +0000
1220+++ tests/t/group_min_max.test 2011-02-07 17:26:32 +0000
1221@@ -524,7 +524,7 @@
1222 select distinct a1,a1 from t1;
1223 select distinct a2,a1,a2,a1 from t1;
1224 --sorted_result
1225-select distinct t1.a1,t2.a1 from t1,t2;
1226+select distinct t1.a1,t2.a1 from t1,t2 where t1.a1 >= '';
1227
1228
1229 #
1230
1231=== modified file 'tests/t/insert_select.test'
1232--- tests/t/insert_select.test 2010-08-26 21:56:15 +0000
1233+++ tests/t/insert_select.test 2011-02-07 17:26:32 +0000
1234@@ -87,7 +87,7 @@
1235 select * from t1;
1236 insert into t2 select * from t1 as t2;
1237 select * from t1;
1238-insert into t1 select t2.a from t1,t2;
1239+insert into t1 select t2.a from t1,t2 where t1.a > 0;
1240 select * from t1;
1241 --error ER_NONUNIQ_TABLE
1242 insert into t1 select * from t1,t1;
1243
1244=== modified file 'tests/t/join.test'
1245--- tests/t/join.test 2011-01-26 00:31:58 +0000
1246+++ tests/t/join.test 2011-02-07 17:26:32 +0000
1247@@ -12,7 +12,9 @@
1248 CREATE TABLE t2 (S1 INT);
1249 INSERT INTO t1 VALUES (1);
1250 INSERT INTO t2 VALUES (2);
1251+--error ER_CARTESIAN_JOIN_ATTEMPTED
1252 SELECT * FROM t1 JOIN t2;
1253+--error ER_CARTESIAN_JOIN_ATTEMPTED
1254 SELECT * FROM t1 INNER JOIN t2;
1255 SELECT * from t1 JOIN t2 USING (S1);
1256 SELECT * FROM t1 INNER JOIN t2 USING (S1);
1257@@ -299,6 +301,7 @@
1258 CREATE TABLE t1 (a int);
1259 CREATE TABLE t2 (b int);
1260 CREATE TABLE t3 (c int);
1261+--error ER_CARTESIAN_JOIN_ATTEMPTED
1262 SELECT * FROM t1 NATURAL JOIN t2 NATURAL JOIN t3;
1263 DROP TABLE t1, t2, t3;
1264
1265@@ -598,7 +601,7 @@
1266 create table t3 (a int, b int, filler char(100), key(a), key(b));
1267
1268 insert into t2
1269- select @a:= A.a + 10*(B.a + 10*C.a), @a, 'filler' from t1 A, t1 B, t1 C;
1270+ select @a:= A.a + 10*(B.a + 10*C.a), @a, 'filler' from t1 A, t1 B, t1 C where B.a >= 0;
1271 insert into t3 select * from t2 where a < 800;
1272
1273 # The order of tables must be t2,t3:
1274@@ -612,7 +615,7 @@
1275 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
1276
1277 create table t2 (a int, b int, primary key(a));
1278-insert into t2 select @v:=A.a+10*B.a, @v from t1 A, t1 B;
1279+insert into t2 select @v:=A.a+10*B.a, @v from t1 A, t1 B where B.a >= 0;
1280
1281 explain select * from t1;
1282 --replace_column 2 #
1283
1284=== modified file 'tests/t/join_nested.test'
1285--- tests/t/join_nested.test 2010-08-21 22:42:44 +0000
1286+++ tests/t/join_nested.test 2011-02-07 17:26:32 +0000
1287@@ -35,7 +35,7 @@
1288 SELECT t4.a,t4.b
1289 FROM t4;
1290
1291---sorted_result
1292+--error ER_CARTESIAN_JOIN_ATTEMPTED
1293 SELECT t3.a,t3.b,t4.a,t4.b
1294 FROM t3,t4;
1295
1296@@ -76,7 +76,7 @@
1297 SELECT t5.a,t5.b
1298 FROM t5;
1299
1300---sorted_result
1301+--error ER_CARTESIAN_JOIN_ATTEMPTED
1302 SELECT t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
1303 FROM t3,t4,t5;
1304
1305@@ -126,7 +126,7 @@
1306
1307 --sorted_result
1308 SELECT t6.a,t6.b,t7.a,t7.b
1309- FROM t6,t7;
1310+ FROM t6 CROSS JOIN t7;
1311
1312 SELECT t8.a,t8.b
1313 FROM t8;
1314@@ -426,7 +426,7 @@
1315 WHERE t1.a <= 2;
1316
1317 SELECT t3.a,t3.b,t4.a,t4.b
1318- FROM t3,t4;
1319+ FROM t3 CROSS JOIN t4;
1320
1321 SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
1322 FROM t2
1323@@ -771,7 +771,7 @@
1324 create table t1 (a int);
1325 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
1326 create table t2 (a int, filler char(100), key(a));
1327-insert into t2 select A.a + 10*B.a, '' from t1 A, t1 B;
1328+insert into t2 select A.a + 10*B.a, '' from t1 A CROSS JOIN t1 B;
1329 create table t3 like t2;
1330 insert into t3 select * from t2;
1331
1332
1333=== modified file 'tests/t/key_diff.test'
1334--- tests/t/key_diff.test 2010-08-21 22:42:44 +0000
1335+++ tests/t/key_diff.test 2011-02-07 17:26:32 +0000
1336@@ -15,7 +15,7 @@
1337 INSERT INTO t1 VALUES ('A','B'),('b','A'),('C','c'),('D','E'),('a','a');
1338
1339 --sorted_result
1340-select * from t1,t1 as t2;
1341+select * from t1 CROSS JOIN t1 as t2;
1342 explain select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B;
1343 #select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B;
1344 select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B order by binary t1.a,t2.a;
1345
1346=== modified file 'tests/t/olap.test'
1347--- tests/t/olap.test 2010-08-26 21:56:15 +0000
1348+++ tests/t/olap.test 2011-02-07 17:26:32 +0000
1349@@ -90,7 +90,7 @@
1350 CREATE TABLE t2 (i int);
1351 INSERT INTO t2 VALUES (100),(200);
1352 SELECT i, COUNT(*) FROM t1 GROUP BY i WITH ROLLUP;
1353-SELECT t1.i, t2.i, COUNT(*) FROM t1,t2 GROUP BY t1.i,t2.i WITH ROLLUP;
1354+SELECT t1.i, t2.i, COUNT(*) FROM t1 CROSS JOIN t2 GROUP BY t1.i,t2.i WITH ROLLUP;
1355 drop table t1,t2;
1356
1357 #bug #4767: ROLLUP with LEFT JOIN
1358
1359=== modified file 'tests/t/order_by.test'
1360--- tests/t/order_by.test 2010-12-07 09:12:12 +0000
1361+++ tests/t/order_by.test 2011-02-07 17:26:32 +0000
1362@@ -623,11 +623,11 @@
1363
1364 CREATE TABLE t1 (a int);
1365
1366-SELECT p.a AS val, q.a AS val1 FROM t1 p, t1 q ORDER BY val > 1;
1367---error ER_NON_UNIQ_ERROR
1368-SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val;
1369---error ER_NON_UNIQ_ERROR
1370-SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1;
1371+SELECT p.a AS val, q.a AS val1 FROM t1 p CROSS JOIN t1 q ORDER BY val > 1;
1372+--error ER_NON_UNIQ_ERROR
1373+SELECT p.a AS val, q.a AS val FROM t1 p CROSS JOIN t1 q ORDER BY val;
1374+--error ER_NON_UNIQ_ERROR
1375+SELECT p.a AS val, q.a AS val FROM t1 p CROSS JOIN t1 q ORDER BY val > 1;
1376
1377 DROP TABLE t1;
1378
1379
1380=== modified file 'tests/t/range.test'
1381--- tests/t/range.test 2010-12-20 19:20:57 +0000
1382+++ tests/t/range.test 2011-02-07 17:26:32 +0000
1383@@ -508,7 +508,7 @@
1384 PRIMARY KEY (pk1,pk2,pk3,pk4)
1385 );
1386
1387-insert into t2 select 1, A.a+10*B.a, 432, 44, 'fillerZ' from t1 A, t1 B;
1388+insert into t2 select 1, A.a+10*B.a, 432, 44, 'fillerZ' from t1 A CROSS JOIN t1 B;
1389 INSERT INTO t2 VALUES (2621, 2635, 0, 0,'filler'), (2621, 2635, 1, 0,'filler'),
1390 (2621, 2635, 10, 0,'filler'), (2621, 2635, 11, 0,'filler'),
1391 (2621, 2635, 14, 0,'filler'), (2621, 2635, 1000015, 0,'filler');
1392@@ -792,7 +792,7 @@
1393 insert into t1 values ('a ','');
1394 insert into t1 values ('a ', '');
1395 insert into t1 select concat('a', 1000 + A.a + 10 * (B.a + 10 * C.a)), ''
1396- from t3 A, t3 B, t3 C;
1397+ from t3 A CROSS JOIN t3 B CROSS JOIN t3 C;
1398
1399 create table t2 (a varchar(10), filler char(200), key(a));
1400 insert into t2 select * from t1;
1401
1402=== modified file 'tests/t/select.test'
1403--- tests/t/select.test 2011-02-01 18:23:24 +0000
1404+++ tests/t/select.test 2011-02-07 17:26:32 +0000
1405@@ -1534,7 +1534,7 @@
1406 # Full join (same alias)
1407 #
1408
1409-select * from t1,t1 t12;
1410+select * from t1 CROSS JOIN t1 t12;
1411 --sorted_result
1412 select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 250505 and t22.fld1 >= 250501 and t22.fld1 <= 250505;
1413
1414@@ -2720,7 +2720,7 @@
1415 create table t1 (a int);
1416 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
1417 create table t2 (a int, b int, c int, e int, primary key(a,b,c));
1418-insert into t2 select A.a, B.a, C.a, C.a from t1 A, t1 B, t1 C;
1419+insert into t2 select A.a, B.a, C.a, C.a from t1 A CROSS JOIN t1 B CROSS JOIN t1 C;
1420 analyze table t2;
1421 select 'In next EXPLAIN, B.rows must be exactly 10:' Z;
1422
1423@@ -3278,7 +3278,7 @@
1424 KEY (c33, c34, c32));
1425
1426 INSERT INTO t1 values (),(),(),(),();
1427-INSERT INTO t2 SELECT a.c11, b.c11 FROM t1 a, t1 b;
1428+INSERT INTO t2 SELECT a.c11, b.c11 FROM t1 a CROSS JOIN t1 b;
1429 INSERT INTO t3 VALUES (1, 1, 1, 0),
1430 (2, 2, 0, 0),
1431 (3, 3, 1, 0),
1432
1433=== modified file 'tests/t/select_safe.test'
1434--- tests/t/select_safe.test 2010-08-26 21:56:15 +0000
1435+++ tests/t/select_safe.test 2011-02-07 17:26:32 +0000
1436@@ -17,7 +17,7 @@
1437 --sorted_result
1438 SELECT SQL_BUFFER_RESULT * from t1;
1439 update t1 set b="a" where a=1;
1440-select 1 from t1,t1 as t2,t1 as t3;
1441+select 1 from t1 CROSS JOIN t1 as t2 CROSS JOIN t1 as t3;
1442
1443 # The following should NOT give errors:
1444 update t1 set b="a";
1445@@ -25,7 +25,7 @@
1446 delete from t1;
1447 delete from t1 where b="test";
1448 delete from t1 where a+0=1;
1449-select 1 from t1,t1 as t2,t1 as t3,t1 as t4,t1 as t5;
1450+select 1 from t1 CROSS JOIN t1 as t2 CROSS JOIN t1 as t3 CROSS JOIN t1 as t4 CROSS JOIN t1 as t5;
1451
1452 # The following should be ok:
1453 update t1 set b="a" limit 1;
1454
1455=== modified file 'tests/t/status.test'
1456--- tests/t/status.test 2011-01-18 23:35:32 +0000
1457+++ tests/t/status.test 2011-02-07 17:26:32 +0000
1458@@ -115,7 +115,7 @@
1459 SELECT (SELECT a FROM t1 LIMIT 1) x FROM t1 LIMIT 1;
1460 SHOW SESSION STATUS LIKE 'Last_query_cost';
1461
1462-SELECT * FROM t1 a, t1 b LIMIT 1;
1463+SELECT * FROM t1 a CROSS JOIN t1 b LIMIT 1;
1464 SHOW SESSION STATUS LIKE 'Last_query_cost';
1465
1466 DROP TABLE t1;
1467
1468=== modified file 'tests/t/subselect.test'
1469--- tests/t/subselect.test 2011-02-04 04:21:02 +0000
1470+++ tests/t/subselect.test 2011-02-07 17:26:32 +0000
1471@@ -3119,8 +3119,9 @@
1472 --error ER_PARSE_ERROR
1473 SELECT * FROM t1 JOIN ((t1 t1a)) t1a ON 1;
1474
1475---sorted_result
1476+--error ER_CARTESIAN_JOIN_ATTEMPTED
1477 SELECT * FROM t1 JOIN (t1 t1a) ON 1;
1478+--error ER_CARTESIAN_JOIN_ATTEMPTED
1479 SELECT * FROM t1 JOIN ((t1 t1a)) ON 1;
1480
1481 SELECT * FROM (t1 t1a);
1482
1483=== modified file 'tests/t/subselect3.test'
1484--- tests/t/subselect3.test 2010-12-21 02:58:40 +0000
1485+++ tests/t/subselect3.test 2011-02-07 17:26:32 +0000
1486@@ -225,7 +225,7 @@
1487
1488 # Then check that we do turn off 'ref' scans in the subquery
1489 create table t4 (x int);
1490-insert into t4 select A.a + 10*B.a from t1 A, t1 B;
1491+insert into t4 select A.a + 10*B.a from t1 A CROSS JOIN t1 B;
1492 explain extended
1493 select a,b, oref,
1494 (a,b) in (select a,b from t1,t4 where c=t2.oref) Z
1495
1496=== modified file 'tests/t/subselect_sj.test'
1497--- tests/t/subselect_sj.test 2009-06-16 01:16:01 +0000
1498+++ tests/t/subselect_sj.test 2011-02-07 17:26:32 +0000
1499@@ -81,7 +81,7 @@
1500 where t1.a < 5;
1501
1502 # Try I2O orders
1503-insert into t1 select (A.a + 10 * B.a),1 from t0 A, t0 B;
1504+insert into t1 select (A.a + 10 * B.a),1 from t0 A CROSS JOIN t0 B;
1505 explain extended select * from t1 where a in (select pk from t10 where pk<3);
1506
1507 drop table t0, t1;
1508
1509=== modified file 'tests/t/subselect_sj2.test'
1510--- tests/t/subselect_sj2.test 2009-10-20 20:39:01 +0000
1511+++ tests/t/subselect_sj2.test 2011-02-07 17:26:32 +0000
1512@@ -371,7 +371,7 @@
1513 insert into t3 values ('2009-10-22'),('2142-10-22');
1514 create table t2 (c1 tinytext,c2 text,c6 timestamp) engine=innodb;
1515 select * from t3;
1516-explain select 1 from t2 where c2 in (select 1 from t3, t2) and c1 in (select convert(c6,char(1)) from t2);
1517+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);
1518 drop table t2, t3;
1519
1520 #
1521
1522=== modified file 'tests/t/sum_distinct.test'
1523--- tests/t/sum_distinct.test 2010-04-20 18:23:07 +0000
1524+++ tests/t/sum_distinct.test 2011-02-07 17:26:32 +0000
1525@@ -56,14 +56,14 @@
1526 SUM(DISTINCT LENGTH(g1.name)) s1,
1527 SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
1528 SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
1529-FROM t1 g1, t1 g2, t1 g3;
1530+FROM t1 g1 CROSS JOIN t1 g2 CROSS JOIN t1 g3;
1531
1532 SELECT
1533 SQL_BIG_RESULT
1534 SUM(DISTINCT LENGTH(g1.name)) s1,
1535 SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
1536 SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
1537-FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
1538+FROM t1 g1 CROSS JOIN t1 g2 CROSS JOIN t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
1539
1540 # here we explicitly request summing through temporary table (so
1541 # Item_sum_sum_distinct::copy_or_same() is called)
1542@@ -78,7 +78,7 @@
1543 SUM(DISTINCT LENGTH(g1.name)) s1,
1544 SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
1545 SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
1546-FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
1547+FROM t1 g1 CROSS JOIN t1 g2 CROSS JOIN t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
1548
1549 # this test demonstrates that strings are automatically converted to numbers
1550 # before summing
1551
1552=== modified file 'tests/t/type_blob.test'
1553--- tests/t/type_blob.test 2011-02-01 18:23:24 +0000
1554+++ tests/t/type_blob.test 2011-02-07 17:26:32 +0000
1555@@ -55,7 +55,7 @@
1556 insert into t1 values (null,"ccc","CCC");
1557 select last_insert_id();
1558 --sorted_result
1559-select * from t1,t1 as t2;
1560+select * from t1 CROSS JOIN t1 as t2;
1561
1562 drop table t1;
1563
1564
1565=== modified file 'tests/t/type_date.test'
1566--- tests/t/type_date.test 2011-01-26 21:05:29 +0000
1567+++ tests/t/type_date.test 2011-02-07 17:26:32 +0000
1568@@ -75,9 +75,9 @@
1569 INSERT INTO t1 VALUES(1);
1570 CREATE TABLE t2(GMT VARCHAR(32));
1571 INSERT INTO t2 VALUES('GMT-0800');
1572-SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) FROM t1, t2 GROUP BY t1.AFIELD;
1573+SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) FROM t1 CROSS JOIN t2 GROUP BY t1.AFIELD;
1574 INSERT INTO t1 VALUES(1);
1575-SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)), DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) FROM t1,t2 GROUP BY t1.AFIELD;
1576+SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)), DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' , t2.GMT)) FROM t1 CROSS JOIN t2 GROUP BY t1.AFIELD;
1577 drop table t1,t2;
1578
1579 #
1580
1581=== modified file 'tests/t/type_float.test'
1582--- tests/t/type_float.test 2010-08-26 21:56:15 +0000
1583+++ tests/t/type_float.test 2011-02-07 17:26:32 +0000
1584@@ -164,7 +164,7 @@
1585 desc t1;
1586 create table t2 select 105213674794682365.00 y;
1587 desc t2;
1588-create table t3 select x+y a from t1,t2;
1589+create table t3 select x+y a from t1 CROSS JOIN t2;
1590 show warnings;
1591 desc t3;
1592 drop table t1,t2,t3;
1593
1594=== modified file 'tests/t/type_ranges.test'
1595--- tests/t/type_ranges.test 2010-08-26 21:56:15 +0000
1596+++ tests/t/type_ranges.test 2011-02-07 17:26:32 +0000
1597@@ -122,7 +122,7 @@
1598 create table t2 select * from t1;
1599 --error ER_DUP_FIELDNAME
1600 create table t3 select * from t1, t2; # Should give an error
1601-create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1, t2;
1602+create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1 CROSS JOIN t2;
1603 # We mask out the Privileges column because it differs with embedded server
1604 --replace_column 8 #
1605 show columns from t3;
1606
1607=== modified file 'tests/t/union.test'
1608--- tests/t/union.test 2011-02-04 04:21:02 +0000
1609+++ tests/t/union.test 2011-02-07 17:26:32 +0000
1610@@ -316,7 +316,7 @@
1611 insert into t2 (group_name) values ('Group A');
1612 insert into t2 (group_name) values ('Group B');
1613 insert into t3 (user_id, group_id) values (1,1);
1614-select 1 'is_in_group', a.user_name, c.group_name, b.id from t1 a, t3 b, t2 c where a.id = b.user_id and b.group_id = c.id UNION select 0 'is_in_group', a.user_name, c.group_name, null from t1 a, t2 c;
1615+select 1 'is_in_group', a.user_name, c.group_name, b.id from t1 a, t3 b, t2 c where a.id = b.user_id and b.group_id = c.id UNION select 0 'is_in_group', a.user_name, c.group_name, null from t1 a CROSS JOIN t2 c;
1616 drop table t3, t1, t2;
1617
1618 #
1619
1620=== modified file 'tests/t/update.test'
1621--- tests/t/update.test 2011-01-05 07:43:57 +0000
1622+++ tests/t/update.test 2011-02-07 17:26:32 +0000
1623@@ -214,7 +214,7 @@
1624 create table t1 (a int);
1625 insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
1626 create table t2 (a int, filler1 char(200), filler2 char(200), key(a));
1627-insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B;
1628+insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A CROSS JOIN t1 B;
1629 flush status;
1630 update t2 set a=3 where a=2;
1631 --replace_column 2 #

Subscribers

People subscribed via source and target branches