• marko's avatar
    branches/zip: Refuse to use newly created indexes that may lack · ab67f4eb
    marko authored
    history.  This addresses Mantis issue #116.
    
    dict_index_t: Enable the storage of trx_id.
    
    row_prebuilt_t: Make many fields bit-fields to reduce the memory
    footprint. Add index_usable.
    
    ha_innobase::change_active_index(): Check if the index is usable and
    set prebuilt->index_usable accordingly. Unfortunately, the return
    status of this function is ignored by MySQL, and the actual refusal to
    use the index must be made in row_search_for_mysql().
    
    row_search_for_mysql(): Return DB_MISSING_HISTORY if
    !prebuilt->index_usable.
    
    convert_error_code_to_mysql(): Map DB_MISSING_HISTORY to
    HA_ERR_TABLE_DEF_CHANGED.
    
    innodb-index.test: Add a test case where access to a newly created
    secondary index must be blocked for old transactions.
    
    rb://100 approved by Heikki Tuuri
    ab67f4eb
ha_innodb.cc 279 KB