maria-developers team mailing list archive
Mailing list archive
Derived table nests not removed by simplify_joins?
I've discovered the following:
Consider a testcase for https://bugs.launchpad.net/maria/+bug/803365.
There we have a query that's using a derived table that's on the inner side
of an outer join:
WHERE t1.f1 IN (
LEFT JOIN (
) AS alias1
ON alias1.f3 = t2.f2
If I follow it in debugger to right after simplify_joins(), I can see this structure (the
 brackets denote List<TABLE_LIST> bounds):
'alias1' is on the inner side of an outer join (it has non-NULL on_expr, and outer_join==1).
It has got a single child, t3, which has on_expr==NULL and outer_join==0. Is it really correct
that simplify_joins() didn't remove 'alias1', like it does with regular join nests?
Could it be that simplify_joins() code can't handle single-child join nests just because the parser
never produced them (but after conversion of derived tables to join nests they are now possible?)
Sergey Petrunia, Software Developer
Monty Program AB, http://askmonty.org