Loading sql/sql_select.cc +5 −13 Original line number Diff line number Diff line Loading @@ -2931,28 +2931,20 @@ sort_keyuse(KEYUSE *a,KEYUSE *b) ON condition of the given nested join, and does the same for nested joins contained within this nested join. IMPLEMENTATION NOTES We can add accesses to the tables that are direct children of this nested join (1), and are not inner tables w.r.t their neighbours (2). Example for #1 (outer brackets pair denotes nested join this function is invoked for): ... LEFT JOIN (t1 LEFT JOIN (t2 ... ) ) ON cond Example for #2: ... LEFT JOIN (t1 LEFT JOIN t2 ) ON cond In examples 1-2 for condition cond, we can add 'ref' access candidates to t1 only. Example #3: ... LEFT JOIN (t1, t2 JOIN t3 ON inner_cond) ON cond ... LEFT JOIN (t1, t2 LEFT JOIN t3 ON inner_cond) ON cond Here we can add 'ref' access candidates for t1 and t2, but not for t3. */ static void add_key_fields_for_nj(TABLE_LIST *nested_join_table, Loading Loading
sql/sql_select.cc +5 −13 Original line number Diff line number Diff line Loading @@ -2931,28 +2931,20 @@ sort_keyuse(KEYUSE *a,KEYUSE *b) ON condition of the given nested join, and does the same for nested joins contained within this nested join. IMPLEMENTATION NOTES We can add accesses to the tables that are direct children of this nested join (1), and are not inner tables w.r.t their neighbours (2). Example for #1 (outer brackets pair denotes nested join this function is invoked for): ... LEFT JOIN (t1 LEFT JOIN (t2 ... ) ) ON cond Example for #2: ... LEFT JOIN (t1 LEFT JOIN t2 ) ON cond In examples 1-2 for condition cond, we can add 'ref' access candidates to t1 only. Example #3: ... LEFT JOIN (t1, t2 JOIN t3 ON inner_cond) ON cond ... LEFT JOIN (t1, t2 LEFT JOIN t3 ON inner_cond) ON cond Here we can add 'ref' access candidates for t1 and t2, but not for t3. */ static void add_key_fields_for_nj(TABLE_LIST *nested_join_table, Loading