• Konstantin Osipov's avatar
    Backport of: · a66a2608
    Konstantin Osipov authored
    ----------------------------------------------------------
    revno: 2617.69.20
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: 5.4-4284-1-assert
    timestamp: Thu 2009-08-13 18:29:55 +0400
    message:
      WL#4284 "Transactional DDL locking"
      A review fix.
      Since WL#4284 implementation separated MDL_request and MDL_ticket,
      MDL_request becamse a utility object necessary only to get a ticket.
      Store it by-value in TABLE_LIST with the intent to merge
      MDL_request::key with table_list->table_name and table_list->db
      in future.
      Change the MDL subsystem to not require MDL_requests to
      stay around till close_thread_tables().
      Remove the list of requests from the MDL context.
      Requests for shared metadata locks acquired in open_tables()
      are only used as a list in recover_from_failed_open_table_attempt(),
      which calls mdl_context.wait_for_locks() for this list.
      To keep such list for recover_from_failed_open_table_attempt(),
      introduce a context class (Open_table_context), that collects
      all requests.
      A lot of minor cleanups and simplications that became possible
      with this change.
    a66a2608
sql_class.cc 112 KB