diff options
-rw-r--r-- | mysql-test/r/subselect.result | 3 | ||||
-rw-r--r-- | mysql-test/t/subselect.test | 2 | ||||
-rw-r--r-- | sql/sql_union.cc | 3 |
3 files changed, 7 insertions, 1 deletions
diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index 486cab68557..fb1efe04b83 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -1172,3 +1172,6 @@ a b test test test1 test1 drop table if exists t1; +(SELECT 1 as a) UNION (SELECT 1) ORDER BY (SELECT a+0); +a +1 diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 0c3c5cfda18..980fafe12ac 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -763,3 +763,5 @@ CREATE TABLE `t1` ( INSERT INTO t1 (id,pseudo,email) VALUES (1,'test','test'),(2,'test1','test1'); SELECT pseudo as a, pseudo as b FROM t1 GROUP BY (SELECT a) ORDER BY (SELECT id*1); drop table if exists t1; + +(SELECT 1 as a) UNION (SELECT 1) ORDER BY (SELECT a+0); diff --git a/sql/sql_union.cc b/sql/sql_union.cc index 0fb898fa848..724cc658b15 100644 --- a/sql/sql_union.cc +++ b/sql/sql_union.cc @@ -344,7 +344,8 @@ int st_select_lex_unit::exec() if (select_limit_cnt == HA_POS_ERROR) thd->options&= ~OPTION_FOUND_ROWS; fake_select->ftfunc_list= &empty_list; - + fake_select->table_list.link_in_list((byte *)&result_table_list, + (byte **)&result_table_list.next); res= mysql_select(thd, &ref_pointer_array, &result_table_list, 0, item_list, NULL, global_parameters->order_list.elements, |