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:
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user