diff options
author | unknown <bell@sanja.is.com.ua> | 2002-11-14 00:26:18 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-11-14 00:26:18 +0200 |
commit | 81a5afb925e9c41f7f43e58e8f36d93b5befd364 (patch) | |
tree | d888a4517004a1a442146f5d6b8c8ca5fa2515dc /sql/item_subselect.cc | |
parent | e0ad88a2ff751d62853fa4f81d007d1b55fc71f4 (diff) | |
download | mariadb-git-81a5afb925e9c41f7f43e58e8f36d93b5befd364.tar.gz |
fixed cyclic reference bug
mysql-test/r/subselect.result:
test of cyclic reference
mysql-test/t/subselect.test:
test of cyclic reference
sql/share/czech/errmsg.txt:
new error message
sql/share/danish/errmsg.txt:
new error message
sql/share/dutch/errmsg.txt:
new error message
sql/share/english/errmsg.txt:
new error message
sql/share/estonian/errmsg.txt:
new error message
sql/share/french/errmsg.txt:
new error message
sql/share/german/errmsg.txt:
new error message
sql/share/greek/errmsg.txt:
new error message
sql/share/hungarian/errmsg.txt:
new error message
sql/share/italian/errmsg.txt:
new error message
sql/share/japanese/errmsg.txt:
new error message
sql/share/korean/errmsg.txt:
new error message
sql/share/norwegian-ny/errmsg.txt:
new error message
sql/share/norwegian/errmsg.txt:
new error message
sql/share/polish/errmsg.txt:
new error message
sql/share/portuguese/errmsg.txt:
new error message
sql/share/romanian/errmsg.txt:
new error message
sql/share/russian/errmsg.txt:
new error message
sql/share/serbian/errmsg.txt:
new error message
sql/share/slovak/errmsg.txt:
new error message
sql/share/spanish/errmsg.txt:
new error message
sql/share/swedish/errmsg.txt:
new error message
sql/share/ukrainian/errmsg.txt:
new error message
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r-- | sql/item_subselect.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 37c85501b06..1f1944026ef 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -95,6 +95,15 @@ bool Item_subselect::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref) return res; } +bool Item_subselect::check_loop(uint id) +{ + DBUG_ENTER("Item_subselect::check_loop"); + if (Item_result_field::check_loop(id)) + DBUG_RETURN(1); + + DBUG_RETURN(engine->check_loop(id)); +} + void Item_subselect::fix_length_and_dec() { engine->fix_length_and_dec(); @@ -228,6 +237,7 @@ subselect_single_select_engine::subselect_single_select_engine(THD *thd, thd->fatal_error= 1; my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0)); } + unit->item= item; this->select_lex= select_lex; } @@ -353,3 +363,18 @@ bool subselect_union_engine::depended() { return unit->dependent; } + +bool subselect_single_select_engine::check_loop(uint id) +{ + DBUG_ENTER("subselect_single_select_engine::check_loop"); + DBUG_RETURN(join->check_loop(id)); +} + +bool subselect_union_engine::check_loop(uint id) +{ + DBUG_ENTER("subselect_union_engine::check_loop"); + for (SELECT_LEX *sl= unit->first_select(); sl; sl= sl->next_select()) + if (sl->join && sl->join->check_loop(id)) + DBUG_RETURN(1); + DBUG_RETURN(0); +} |