• marko's avatar
    branches/zip: Simplify the locking of the data dictionary. · 3131340b
    marko authored
    row_upd_index_is_referenced(), row_upd_check_references_constraints(),
    row_purge_parse_undo_rec(): Remove duplicated code that calls
    row_mysql_unfreeze_data_dictionary().
    
    row_undo_ins_remove_clust_rec():
    Assert that the data dictionary is X-latched.  Do not attempt to re-latch
    the data dictionary, because doing so introduces race conditions.  This
    re-latching was probably made unnecessary already in r1676, which keeps
    the data dictionary X-latched in ha_innobase::add_index() for the complete
    duration of the data dictionary operations.
    
    row_undo_ins_parse_undo_rec(): Do not attempt to acquire the data dictionary
    latch.  The data dictionary should be already X-latched when a transaction
    that modifies system tables is rolled back.  This also holds in the rollback
    during crash recovery: trx_rollback_active() will X-latch the data dictionary
    when needed.
    3131340b
row0upd.c 51.7 KB