At file:///home/psergey/dev/maria-5.1-table-elim/

------------------------------------------------------------
revno: 2727
revision-id: pser...@askmonty.org-20090708171038-9nyc3hcg1o7h8635
parent: pser...@askmonty.org-20090630132018-8qwou8bqiq5z1qjg
committer: Sergey Petrunya <pser...@askmonty.org>
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; }


_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to