diff options
author | Sergei Golubchik <sergii@pisem.net> | 2010-03-15 12:51:23 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2010-03-15 12:51:23 +0100 |
commit | f09ca00e088b316441bb76e97ba097bc9f3da7d3 (patch) | |
tree | 1a557d74018ed9cd073b5aa960bd62421962e73d /sql/sql_lex.cc | |
parent | 2ceaffc4672c62a772890da7761d11f13d3f5ee4 (diff) | |
parent | 71b3e46b0160936596195682a731703900fb4fff (diff) | |
download | mariadb-git-f09ca00e088b316441bb76e97ba097bc9f3da7d3.tar.gz |
merged
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r-- | sql/sql_lex.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index b7f27ddb6c9..63ff2e05817 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -1843,13 +1843,15 @@ void st_select_lex_unit::exclude_tree() void st_select_lex::mark_as_dependent(st_select_lex *last, Item *dependency) { SELECT_LEX *next_to_last; + + DBUG_ASSERT(this != last); + /* Mark all selects from resolved to 1 before select where was found table as depended (of select where was found table) */ - for (SELECT_LEX *s= this; - s && s != last; - s= s->outer_select()) + SELECT_LEX *s= this; + do { if (!(s->uncacheable & UNCACHEABLE_DEPENDENT)) { @@ -1867,7 +1869,8 @@ void st_select_lex::mark_as_dependent(st_select_lex *last, Item *dependency) } } next_to_last= s; - } + } while ((s= s->outer_select()) != last && s != 0); + is_correlated= TRUE; this->master_unit()->item->is_correlated= TRUE; if (dependency) |