1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

fixed bug of subselect in derived tables

mysql-test/r/subselect.result:
  test of subselect in derived table
mysql-test/t/subselect.test:
  test of subselect in derived table
This commit is contained in:
unknown
2002-11-25 10:58:49 +02:00
parent b5b19a7877
commit c115d1cee0
3 changed files with 8 additions and 1 deletions

View File

@@ -30,6 +30,8 @@ Unknown column 'a' in 'field list'
SELECT 1 as a FROM (SELECT 1) HAVING (SELECT a)=1; SELECT 1 as a FROM (SELECT 1) HAVING (SELECT a)=1;
a a
1 1
SELECT 1 FROM (SELECT (SELECT a));
Unknown column 'a' in 'field list'
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8;
create table t1 (a int); create table t1 (a int);
create table t2 (a int, b int); create table t2 (a int, b int);

View File

@@ -13,6 +13,8 @@ SELECT 1 FROM (SELECT 1 as a) HAVING (SELECT a)=1;
-- error 1054 -- error 1054
SELECT (SELECT 1), a; SELECT (SELECT 1), a;
SELECT 1 as a FROM (SELECT 1) HAVING (SELECT a)=1; SELECT 1 as a FROM (SELECT 1) HAVING (SELECT a)=1;
-- error 1054
SELECT 1 FROM (SELECT (SELECT a));
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8;
create table t1 (a int); create table t1 (a int);
create table t2 (a int, b int); create table t2 (a int, b int);

View File

@@ -472,7 +472,8 @@ bool Item_field::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref)
REPORT_EXCEPT_NOT_FOUND)) != REPORT_EXCEPT_NOT_FOUND)) !=
(Item **)not_found_item) (Item **)not_found_item)
break; break;
if (sl->linkage == DERIVED_TABLE_TYPE)
break; // do not look over derived table
} }
if (!tmp) if (!tmp)
return -1; return -1;
@@ -887,6 +888,8 @@ bool Item_ref::fix_fields(THD *thd,TABLE_LIST *tables, Item **reference)
if ((tmp= find_field_in_tables(thd, this, if ((tmp= find_field_in_tables(thd, this,
sl->get_table_list(), sl->get_table_list(),
0)) != not_found_field); 0)) != not_found_field);
if (sl->linkage == DERIVED_TABLE_TYPE)
break; // do not look over derived table
} }
if (!ref) if (!ref)