• Neeraj Bisht's avatar
    Bug#16073689 : CRASH IN ITEM_FUNC_MATCH::INIT_SEARCH · 2e2a5c69
    Neeraj Bisht authored
    Problem:
    In query like
    select 1 from .. order by match .. against ...;
    causes a debug assert failue.
    
    Analysis:
    In union type query like
    
    (select * from order by a) order by b;
    or
    (select * from order by a) union (select * from order by b);
    
    We skip resolving of order by a for 1st query and order by of a and b in 
    2nd query.
    
    
    This means that, in case when our order by have Item_func_match class, 
    we skip resolving it.
    But we maintain a ft_func_list and at the time of optimization, when we 
    Perform FULLTEXT search before all regular searches on the bases of the 
    list we call Item_func_match::init_search() which will cause debug assert 
    as the item is not resolved.
    
    
    Solution:
    We will skip execution if the item is not fixed and we will not 
    fix index(Item_func_match::fix_index()) for which 
    Item_func_match::fix_field() is not called so that on later changes 
    we can check the dependency on fix field.
    bz
    
    sql/item_func.cc:
      skiping execution, if item is not resolved.
    2e2a5c69
item_func.cc 168 KB