• Igor Babaev's avatar
    Fixed LP bug #639935 (bug #58727). · efbb3c6c
    Igor Babaev authored
    When the optimizer creates items out of other items it does
    not have to call the fix_fields method. Usually in these
    cases it calls quick_fix_field() that just marks the 
    created item as fixed. If the created item is an Item_func
    object then calling quick_fix_field() works fine if the
    arguments of the created functional item are already fixed.
    Otherwise some unfixed nodes remain in the item tree and
    it triggers an assertion failure whenever the item is 
    evaluated.
    
    Fixed the problem by making the method quick_fix_field
    virtual and providing an implementation for the class
    Item_func objects that recursively calls the method
    for unfixed arguments of any functional item.
    efbb3c6c
item_func.h 48.9 KB