Loading mysql-test/r/union.result +8 −1 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ explain (select a,b from t1 limit 2) union all (select a,b from t2 order by a l table type possible_keys key key_len ref rows Extra t1 ALL NULL NULL NULL NULL 4 t2 ALL NULL NULL NULL NULL 4 Using filesort t1 ALL NULL NULL NULL NULL 4 (select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2; a b 1 a Loading Loading @@ -424,8 +423,16 @@ create table t1 select a from t1 union select a from t2; INSERT TABLE 't1' isn't allowed in FROM table list select a from t1 union select a from t2 order by t2.a; Unknown column 't2.a' in 'ORDER BY' drop table t1; drop table t1,t2; select length(version()) > 1 as `*` UNION select 2; * 1 2 create table t1 (a int); insert into t1 values (0), (3), (1), (2); explain (select * from t1) union (select * from t1) order by a; table type possible_keys key key_len ref rows Extra t1 ALL NULL NULL NULL NULL 4 t1 ALL NULL NULL NULL NULL 4 drop table t1; mysql-test/t/union.test +9 −0 Original line number Diff line number Diff line Loading @@ -228,6 +228,7 @@ create temporary table t1 select a from t1 union select a from t2; create table t1 select a from t1 union select a from t2; --error 1054 select a from t1 union select a from t2 order by t2.a; drop table t1; # Drop temporary table drop table t1,t2; # Loading @@ -236,3 +237,11 @@ drop table t1,t2; select length(version()) > 1 as `*` UNION select 2; # # Bug #4980: problem with explain # create table t1 (a int); insert into t1 values (0), (3), (1), (2); explain (select * from t1) union (select * from t1) order by a; drop table t1; sql/sql_union.cc +4 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,10 @@ int mysql_union(THD *thd, LEX *lex,select_result *result) { ha_rows records_at_start; lex->select=sl; #if MYSQL_VERSION_ID < 40100 if (describe && sl->linkage == NOT_A_SELECT) break; // Skip extra item in case of 'explain' #endif /* Don't use offset for the last union if there is no braces */ if (sl != lex_sl) { Loading Loading
mysql-test/r/union.result +8 −1 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ explain (select a,b from t1 limit 2) union all (select a,b from t2 order by a l table type possible_keys key key_len ref rows Extra t1 ALL NULL NULL NULL NULL 4 t2 ALL NULL NULL NULL NULL 4 Using filesort t1 ALL NULL NULL NULL NULL 4 (select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2; a b 1 a Loading Loading @@ -424,8 +423,16 @@ create table t1 select a from t1 union select a from t2; INSERT TABLE 't1' isn't allowed in FROM table list select a from t1 union select a from t2 order by t2.a; Unknown column 't2.a' in 'ORDER BY' drop table t1; drop table t1,t2; select length(version()) > 1 as `*` UNION select 2; * 1 2 create table t1 (a int); insert into t1 values (0), (3), (1), (2); explain (select * from t1) union (select * from t1) order by a; table type possible_keys key key_len ref rows Extra t1 ALL NULL NULL NULL NULL 4 t1 ALL NULL NULL NULL NULL 4 drop table t1;
mysql-test/t/union.test +9 −0 Original line number Diff line number Diff line Loading @@ -228,6 +228,7 @@ create temporary table t1 select a from t1 union select a from t2; create table t1 select a from t1 union select a from t2; --error 1054 select a from t1 union select a from t2 order by t2.a; drop table t1; # Drop temporary table drop table t1,t2; # Loading @@ -236,3 +237,11 @@ drop table t1,t2; select length(version()) > 1 as `*` UNION select 2; # # Bug #4980: problem with explain # create table t1 (a int); insert into t1 values (0), (3), (1), (2); explain (select * from t1) union (select * from t1) order by a; drop table t1;
sql/sql_union.cc +4 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,10 @@ int mysql_union(THD *thd, LEX *lex,select_result *result) { ha_rows records_at_start; lex->select=sl; #if MYSQL_VERSION_ID < 40100 if (describe && sl->linkage == NOT_A_SELECT) break; // Skip extra item in case of 'explain' #endif /* Don't use offset for the last union if there is no braces */ if (sl != lex_sl) { Loading