Commit 6ed49352 authored by unknown's avatar unknown
Browse files

Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0

into moonbone.local:/work/mysql-5.0-bug-11864


mysql-test/r/derived.result:
  Auto merged
sql/sql_derived.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
parents 7b91cd9a e66cd716
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ a b
1	a
2	b
3	c
explain select * from (select * from t1,t2 where t1.a=t2.a) t1;
explain select * from (select t1.*, t2.a as t2a from t1,t2 where t1.a=t2.a) t1;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	PRIMARY	<derived2>	system	NULL	NULL	NULL	NULL	1	
2	DERIVED	t2	system	NULL	NULL	NULL	NULL	1	
@@ -363,3 +363,8 @@ a
3
3
drop table t1, t2, t3;
create table t1 (a int);
create table t2 (a int);
select * from (select * from t1,t2) foo;
ERROR 42S21: Duplicate column name 'a'
drop table t1,t2;
+1 −1
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ set local max_join_size=8;
select * from (select * from t1) x;
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
set local  max_join_size=1;
select * from (select * from t1 a, t1 b) x;
select * from (select a.a as aa, b.a as ba from t1 a, t1 b) x;
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
set local  max_join_size=1;
select * from (select 1 union select 2 union select 3) x;
+10 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ CREATE TABLE t2 (a int not null);
insert into t2 values(1);
select * from (select * from t1 where t1.a=(select a from t2 where t2.a=t1.a)) a;
select * from (select * from t1 where t1.a=(select t2.a from t2 where t2.a=t1.a) union select t1.a, t1.b from t1) a;
explain select * from (select * from t1,t2 where t1.a=t2.a) t1;
explain select * from (select t1.*, t2.a as t2a from t1,t2 where t1.a=t2.a) t1;
drop table t1, t2;
create table t1(a int not null, t char(8), index(a));
disable_query_log;
@@ -249,4 +249,13 @@ select * from t1 union distinct select * from t2 union all select * from t3;
select * from (select * from t1 union distinct select * from t2 union all select * from t3) X;
drop table t1, t2, t3;

#
# Bug #11864 non unique names are allowed in subquery
#
create table t1 (a int);
create table t2 (a int);
--error 1060
select * from (select * from t1,t2) foo;
drop table t1,t2;

# End of 4.1 tests
+1 −1
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ select * from (select * from t1) x;

set local  max_join_size=1;
--error 1104
select * from (select * from t1 a, t1 b) x;
select * from (select a.a as aa, b.a as ba from t1 a, t1 b) x;

set local  max_join_size=1;
--error 1104
+5 −0
Original line number Diff line number Diff line
@@ -125,6 +125,11 @@ int mysql_derived_prepare(THD *thd, LEX *lex, TABLE_LIST *orig_table_list)
    if ((res= unit->prepare(thd, derived_result, 0, orig_table_list->alias)))
      goto exit;

    if (check_duplicate_names(unit->types, 0))
    {
      res= -1;
      goto exit;
    }

    derived_result->tmp_table_param.init();
    derived_result->tmp_table_param.field_count= unit->types.elements;
Loading