diff options
author | unknown <bell@sanja.is.com.ua> | 2002-12-26 01:28:59 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-12-26 01:28:59 +0200 |
commit | 1dfa625f7b2a0767ce458c47122093a8c2ecf664 (patch) | |
tree | 6a73d0cc2b8728ab821e54448c158fa784365acb /sql/item_row.cc | |
parent | da4d8e1b62edc5bc6f31d70279a619325ae69442 (diff) | |
download | mariadb-git-1dfa625f7b2a0767ce458c47122093a8c2ecf664.tar.gz |
support of subselect without FROM reducing (SCRUM)
fixed bug of calling setup_fields without correct lex->current_select pointer in mysql_derived
more correct creation of reference in Item_field::fix_field
mysql-test/r/subselect.result:
new explain with subselect reduced
mysql-test/t/subselect.test:
new explain with subselect reduced
sql/item.cc:
support of subselect without FROM reducing
more correct creation of reference in Item_field::fix_field
sql/item.h:
support of subselect without FROM reducing
sql/item_cmpfunc.cc:
support of subselect without FROM reducing
sql/item_cmpfunc.h:
support of subselect without FROM reducing
sql/item_func.cc:
support of subselect without FROM reducing
sql/item_func.h:
support of subselect without FROM reducing
sql/item_row.cc:
support of subselect without FROM reducing
sql/item_row.h:
support of subselect without FROM reducing
sql/item_strfunc.h:
fixed layout
support of subselect without FROM reducing
sql/item_subselect.cc:
support of subselect without FROM reducing
sql/item_subselect.h:
support of subselect without FROM reducing
sql/mysql_priv.h:
reference in Item_field::fix_field related changes
sql/sql_base.cc:
reference in Item_field::fix_field related changes
sql/sql_derived.cc:
fixed bug of calling setup_fields without correct lex->current_select pointer
Diffstat (limited to 'sql/item_row.cc')
-rw-r--r-- | sql/item_row.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sql/item_row.cc b/sql/item_row.cc index 9d605e05242..b54653f4183 100644 --- a/sql/item_row.cc +++ b/sql/item_row.cc @@ -105,5 +105,20 @@ void Item_row::bring_value() { for (uint i= 0; i < arg_count; i++) items[i]->bring_value(); - return; +} + +void Item_row::set_outer_resolving() +{ + for (uint i= 0; i < arg_count; i++) + items[i]->set_outer_resolving(); +} + +bool Item_row::check_loop(uint id) +{ + if (Item::check_loop(id)) + return 1; + for (uint i= 0; i < arg_count; i++) + if (items[i]->check_loop(id)) + return 1; + return 0; } |