• ingo@mysql.com's avatar
    Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX · d0c6eb88
    ingo@mysql.com authored
    For "count(*) while index_column = value" an index read
    is done. It consists of an index scan and retrieval of
    each key.
    
    For efficiency reasons the index scan stores the key in
    the special buffer 'lastkey2' once only. At the first 
    iteration it notes this fact with the flag 
    HA_STATE_RNEXT_SAME in 'info->update'.
    
    For efficiency reasons, the key retrieval for blobs
    does not allocate a new buffer, but uses 'lastkey2'...
    
    Now I clear the HA_STATE_RNEXT_SAME flag whenever the 
    buffer has been polluted. In this case, the index scan
    copies the key value again (and sets the flag again).
    d0c6eb88
mi_key.c 13.7 KB