mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
fixed bug of subselect in derived tables
This commit is contained in:
parent
c74c93ffc3
commit
fdfe6a4c5e
3 changed files with 8 additions and 1 deletions
|
@ -30,6 +30,8 @@ Unknown column 'a' in 'field list'
|
|||
SELECT 1 as a FROM (SELECT 1) HAVING (SELECT a)=1;
|
||||
a
|
||||
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;
|
||||
create table t1 (a int);
|
||||
create table t2 (a int, b int);
|
||||
|
|
|
@ -13,6 +13,8 @@ SELECT 1 FROM (SELECT 1 as a) HAVING (SELECT a)=1;
|
|||
-- error 1054
|
||||
SELECT (SELECT 1), a;
|
||||
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;
|
||||
create table t1 (a int);
|
||||
create table t2 (a int, b int);
|
||||
|
|
|
@ -472,7 +472,8 @@ bool Item_field::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref)
|
|||
REPORT_EXCEPT_NOT_FOUND)) !=
|
||||
(Item **)not_found_item)
|
||||
break;
|
||||
|
||||
if (sl->linkage == DERIVED_TABLE_TYPE)
|
||||
break; // do not look over derived table
|
||||
}
|
||||
if (!tmp)
|
||||
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,
|
||||
sl->get_table_list(),
|
||||
0)) != not_found_field);
|
||||
if (sl->linkage == DERIVED_TABLE_TYPE)
|
||||
break; // do not look over derived table
|
||||
}
|
||||
|
||||
if (!ref)
|
||||
|
|
Loading…
Reference in a new issue