maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #00514
Rev 2727: MWL#17: Table elimination in file:///home/psergey/dev/maria-5.1-table-elim/
At file:///home/psergey/dev/maria-5.1-table-elim/
------------------------------------------------------------
revno: 2727
revision-id: psergey@xxxxxxxxxxxx-20090708171038-9nyc3hcg1o7h8635
parent: psergey@xxxxxxxxxxxx-20090630132018-8qwou8bqiq5z1qjg
committer: Sergey Petrunya <psergey@xxxxxxxxxxxx>
branch nick: maria-5.1-table-elim
timestamp: Wed 2009-07-08 21:10:38 +0400
message:
MWL#17: Table elimination
- When collecting Item_subselect::refers_to, put references to the correct
subselect entry.
=== modified file 'sql/sql_lex.cc'
--- a/sql/sql_lex.cc 2009-06-22 11:46:31 +0000
+++ b/sql/sql_lex.cc 2009-07-08 17:10:38 +0000
@@ -1780,6 +1780,7 @@
void st_select_lex::mark_as_dependent(st_select_lex *last, Item *dependency)
{
+ SELECT_LEX *next_to_last;
/*
Mark all selects from resolved to 1 before select where was
found table as depended (of select where was found table)
@@ -1787,6 +1788,7 @@
for (SELECT_LEX *s= this;
s && s != last;
s= s->outer_select())
+ {
if (!(s->uncacheable & UNCACHEABLE_DEPENDENT))
{
// Select is dependent of outer select
@@ -1802,10 +1804,12 @@
sl->uncacheable|= UNCACHEABLE_UNITED;
}
}
+ next_to_last= s;
+ }
is_correlated= TRUE;
this->master_unit()->item->is_correlated= TRUE;
if (dependency)
- this->master_unit()->item->refers_to.push_back(dependency);
+ next_to_last->master_unit()->item->refers_to.push_back(dependency);
}
bool st_select_lex_node::set_braces(bool value) { return 1; }