mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix bug #10624 Views with multiple UNION and UNION ALL produce incorrect
results. st_select_lex_unit::print() was losing UNION ALL if in statement were present UNION DISTINCT. mysql-test/r/view.result: Test case for bug #10624 Views with multiple UNION and UNION ALL produce incorrect results. mysql-test/t/view.test: Test case for bug #10624 Views with multiple UNION and UNION ALL produce incorrect results. sql/sql_lex.cc: Fix bug #10624 Views with multiple UNION and UNION ALL produce incorrect results.
This commit is contained in:
@ -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)
|
||||
{
|
||||
bool union_all= !union_distinct;
|
||||
for (SELECT_LEX *sl= first_select(); sl; sl= sl->next_select())
|
||||
{
|
||||
if (sl != first_select())
|
||||
{
|
||||
str->append(" union ", 7);
|
||||
if (!union_distinct)
|
||||
if (union_all)
|
||||
str->append("all ", 4);
|
||||
else if (union_distinct == sl)
|
||||
union_all= true;
|
||||
}
|
||||
if (sl->braces)
|
||||
str->append('(');
|
||||
|
Reference in New Issue
Block a user