• unknown's avatar
    Fix for Bug#8801: the bug was in co-operation of Item_ref · 679088a2
    unknown authored
    with view-merge algorithm and prepared statements: in case when some
    Item_ref pointing to a view column was substituted with a reference 
    pointing to the view expression for that column
    Item_ref::ref member of the original Item_ref was left pointing to 
    not_found_item (0x1).
    As we currently perform expression substition part of the view-merge 
    algorithm per each execution of a prepared statement or stored procedure, 
    we need to preserve original Item_ref objects usable.
    
    
    sql/item.cc:
      Set member Item_ref::ref to null whenever the item itself is substituted 
      with another item.
      This is necessary if we want to re-execute a prepared statement next time.
      
      Additionally Item_ref::fix_fields() implementation was cleaned up
      (by Monty and myself) to reduce the number of if branches. This
      doesn't change the logic of this function.
    679088a2
item.cc 124 KB