• unknown's avatar
    Fixed bug mdev-277 as part of the fix for lp:944706 · e5bca74b
    unknown authored
    The cause for this bug is that the method JOIN::get_examined_rows iterates over all
    JOIN_TABs of the join assuming they are just a sequence. In the query above, the
    innermost subquery is merged into its parent query. When we call
    JOIN::get_examined_rows for the second-level subquery, the iteration that
    assumes sequential order of join tabs goes outside the join_tab array and calls
    the method JOIN_TAB::get_examined_rows on uninitialized memory. 
    
    The fix is to iterate over JOIN_TABs in a way that takes into account the nested
    semi-join structure of JOIN_TABs. In particular iterate as select_describe.
    e5bca74b
subselect.test 186 KB