• Dmitry Lenev's avatar
    Part of fix for bug#52044 "FLUSH TABLES WITH READ LOCK and · 8d0dc9b5
    Dmitry Lenev authored
    FLUSH TABLES <list> WITH READ LOCK are incompatible" to
    be pushed as separate patch.
    
    Replaced thread state name "Waiting for table", which was
    used by threads waiting for a metadata lock or table flush, 
    with a set of names which better reflect types of resources
    being waited for.
    
    Also replaced "Table lock" thread state name, which was used 
    by threads waiting on thr_lock.c table level lock, with more
    elaborate "Waiting for table level lock", to make it 
    more consistent with other thread state names.
    
    Updated test cases and their results according to these 
    changes.
    
    Fixed sys_vars.query_cache_wlock_invalidate_func test to not
    to wait for timeout of wait_condition.inc script.
    
    mysql-test/r/query_cache.result:
      Added test coverage for query_cache_wlock_invalidate
      behavior for implicitly locked tables.
    mysql-test/suite/sys_vars/r/query_cache_wlock_invalidate_func.result:
      Fixed sys_vars.query_cache_wlock_invalidate_func test to not
      to wait for timeout of wait_condition.inc script. Reverted
      changes to test which introduced timeout and replaced waiting
      condition with a more appropriate one.
      Test coverage for query_cache_wlock_invalidate behavior for
      implicitly locked tables was added to query_cache.test.
    mysql-test/suite/sys_vars/t/query_cache_wlock_invalidate_func.test:
      Fixed sys_vars.query_cache_wlock_invalidate_func test to not
      to wait for timeout of wait_condition.inc script. Reverted
      changes to test which introduced timeout and replaced waiting
      condition with a more appropriate one.
      Test coverage for query_cache_wlock_invalidate behavior for
      implicitly locked tables was added to query_cache.test.
    mysql-test/t/query_cache.test:
      Added test coverage for query_cache_wlock_invalidate
      behavior for implicitly locked tables.
    mysys/thr_lock.c:
      Replaced "Table lock" thread state name, which was used by 
      threads waiting on thr_lock.c table level lock, with more
      elaborate "Waiting for table level lock", to make it 
      consistent with thread state names which are used while
      waiting for metadata locks and table flush.
    sql/mdl.cc:
      Replaced thread state name "Waiting for table", which was
      used by threads waiting for a metadata lock or table flush, 
      with a set of names which better reflect types of resources
      being waited for. 
      
      To implement this:
      - Adjusted MDL_wait::timed_wait() to take thread state name
        as parameter.
      - Introduced method of MDL_key class which allows to get
        thread state name to be used while waiting for resource
        corresponding to the key and changed code to use it.
        Added array translating namespaces to thread state names
        as part of this change.
    sql/mdl.h:
      To implement this:
      - Adjusted MDL_wait::timed_wait() to take thread state name
        as parameter.
      - Introduced method of MDL_key class which allows to get
        thread state name to be used while waiting for resource
        corresponding to the key and changed code to use it.
        Added array translating namespaces to thread state names
        as part of this change.
    sql/sql_base.cc:
      Replaced thread state name "Waiting for table", which was
      used by threads waiting for table flush, with a more elaborate
      "Waiting for table flush".
    8d0dc9b5
innodb_mysql_lock2.test 29.2 KB