diff options
author | unknown <bell@sanja.is.com.ua> | 2004-08-13 10:01:30 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2004-08-13 10:01:30 +0300 |
commit | d0c87702f70ff6c0116555fd40e92aef7bb79b46 (patch) | |
tree | db76b055297225d3f6d0277c1daef6075c222761 /sql/item_subselect.cc | |
parent | 05b67e7844f48222120ed119de326e6573b74cf3 (diff) | |
download | mariadb-git-d0c87702f70ff6c0116555fd40e92aef7bb79b46.tar.gz |
skip resolving field in table list if table list is not accessable due to groupping (BUG#4814)
mysql-test/r/func_gconcat.result:
fix of test queries
mysql-test/r/subselect.result:
resolving fields of grouped outer SELECT
mysql-test/t/func_gconcat.test:
fix of test queries
mysql-test/t/subselect.test:
resolving fields of grouped outer SELECT
sql/item.cc:
skip resolving field in table list if table list is not accessable due to groupping
layout fixed
sql/item_subselect.cc:
detection of place of subquery
sql/item_subselect.h:
detection of place of subquery
sql/mysql_priv.h:
enum_parsing_place made global type
sql/sql_lex.cc:
enum_parsing_place made global type
sql/sql_lex.h:
enum_parsing_place made global type
sql/sql_yacc.yy:
enum_parsing_place made global type
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r-- | sql/item_subselect.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 36f5c891186..750fd4aa4af 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -63,12 +63,14 @@ void Item_subselect::init(st_select_lex *select_lex, => we do not copy old_engine here */ engine= unit->item->engine; + parsing_place= unit->item->parsing_place; unit->item->engine= 0; unit->item= this; engine->change_item(this, result); } else { + parsing_place= unit->outer_select()->parsing_place; if (select_lex->next_select()) engine= new subselect_union_engine(unit, result, this); else @@ -76,7 +78,7 @@ void Item_subselect::init(st_select_lex *select_lex, } { SELECT_LEX *upper= unit->outer_select(); - if (upper->parsing_place == SELECT_LEX_NODE::IN_HAVING) + if (upper->parsing_place == IN_HAVING) upper->subquery_in_having= 1; } DBUG_VOID_RETURN; |