• mhansson/martin@linux-st28.site's avatar
    bug#28570: handler::index_read() is called with different find_flag when · 1da8451d
    mhansson/martin@linux-st28.site authored
    ORDER BY is used
    
    The range analysis module did not correctly signal to the 
    handler that a range represents a ref (EQ_RANGE flag). This causes 
    non-range queries like 
    SELECT ... FROM ... WHERE keypart_1=const, ..., keypart_n=const 
    ORDER BY ... FOR UPDATE
    to wait for a lock unneccesarily if another running transaction uses
    SELECT ... FOR UPDATE on the same table.
    
    Fixed by setting EQ_RANGE for all range accesses that represent 
    an equality predicate. 
    1da8451d
handler.cc 76.8 KB