Commit 1fc33b05 authored by evgen@moonbone.local's avatar evgen@moonbone.local

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

into moonbone.local:/work/10624-bug-5.0-mysql
parents 6c3dafd0 69319f17
...@@ -2097,3 +2097,15 @@ select * from v1; ...@@ -2097,3 +2097,15 @@ select * from v1;
f1 f1
1 1
drop view v1; drop view v1;
create table t1 (f1 int);
create table t2 (f1 int);
insert into t1 values (1);
insert into t2 values (2);
create view v1 as select * from t1 union select * from t2 union all select * from t2;
select * from v1;
f1
1
2
2
drop view v1;
drop table t1,t2;
...@@ -1942,3 +1942,15 @@ DROP TABLE t1,t2,t3,t4,t5; ...@@ -1942,3 +1942,15 @@ DROP TABLE t1,t2,t3,t4,t5;
create view v1 as select timestampdiff(day,'1997-01-01 00:00:00','1997-01-02 00:00:00') as f1; create view v1 as select timestampdiff(day,'1997-01-01 00:00:00','1997-01-02 00:00:00') as f1;
select * from v1; select * from v1;
drop view v1; drop view v1;
#
# Bug #10624 Views with multiple UNION and UNION ALL produce incorrect results
#
create table t1 (f1 int);
create table t2 (f1 int);
insert into t1 values (1);
insert into t2 values (2);
create view v1 as select * from t1 union select * from t2 union all select * from t2;
select * from v1;
drop view v1;
drop table t1,t2;
...@@ -1511,13 +1511,16 @@ bool st_select_lex::setup_ref_array(THD *thd, uint order_group_num) ...@@ -1511,13 +1511,16 @@ bool st_select_lex::setup_ref_array(THD *thd, uint order_group_num)
void st_select_lex_unit::print(String *str) void st_select_lex_unit::print(String *str)
{ {
bool union_all= !union_distinct;
for (SELECT_LEX *sl= first_select(); sl; sl= sl->next_select()) for (SELECT_LEX *sl= first_select(); sl; sl= sl->next_select())
{ {
if (sl != first_select()) if (sl != first_select())
{ {
str->append(" union ", 7); str->append(" union ", 7);
if (!union_distinct) if (union_all)
str->append("all ", 4); str->append("all ", 4);
else if (union_distinct == sl)
union_all= true;
} }
if (sl->braces) if (sl->braces)
str->append('('); str->append('(');
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment