• unknown's avatar
    Fix for bug lp:1006231 · 66dfceb1
    unknown authored
    Analysis:
    
    When a subquery that needs a temp table is executed during
    the prepare or optimize phase of the outer query, at the end
    of the subquery execution all the JOIN_TABs of the subquery
    are replaced by a new JOIN_TAB that selects from the temp table.
    However that temp table has no corresponding TABLE_LIST.
    Once EXPLAIN execution reaches its last phase, it tries to print
    the names of the subquery tables through its TABLE_LISTs, but in
    the case of this bug there is no such TABLE_LIST (it is NULL),
    hence a crash.
    
    Solution:
    The fix is to block subquery evaluation inside
    Item_func_like::fix_fields and Item_func_like::select_optimize()
    using the Item::is_expensive() test.
    66dfceb1
item_cmpfunc.cc 151 KB