From 1bf6de2c3510634dc7c772954e155151f6ae5db7 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 28 Jun 2003 17:04:26 +0300 Subject: [PATCH] fixed bug #745 (resolving fields of reduced subselect) mysql-test/r/subselect.result: test of bug #745 mysql-test/t/subselect.test: test of bug #745 sql/sql_union.cc: to get chance of outer resolved_fields resolve fields of result table as usual fileds --- mysql-test/r/subselect.result | 3 +++ mysql-test/t/subselect.test | 2 ++ sql/sql_union.cc | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) 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,