summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/subselect.result3
-rw-r--r--mysql-test/t/subselect.test2
-rw-r--r--sql/sql_union.cc3
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,