• Konstantin Osipov's avatar
    A pre-requisite patch for the fix for Bug#52044. · ec2c3bf2
    Konstantin Osipov authored
    This patch also fixes Bug#55452 "SET PASSWORD is
    replicated twice in RBR mode".
    
    The goal of this patch is to remove the release of 
    metadata locks from close_thread_tables().
    This is necessary to not mistakenly release
    the locks in the course of a multi-step
    operation that involves multiple close_thread_tables()
    or close_tables_for_reopen().
    
    On the same token, move statement commit outside 
    close_thread_tables().
    
    Other cleanups:
    Cleanup COM_FIELD_LIST.
    Don't call close_thread_tables() in COM_SHUTDOWN -- there
    are no open tables there that can be closed (we leave
    the locked tables mode in THD destructor, and this
    close_thread_tables() won't leave it anyway).
    
    Make open_and_lock_tables() and open_and_lock_tables_derived()
    call close_thread_tables() upon failure.
    Remove the calls to close_thread_tables() that are now
    unnecessary.
    
    Simplify the back off condition in Open_table_context.
    
    Streamline metadata lock handling in LOCK TABLES 
    implementation.
    
    Add asserts to ensure correct life cycle of 
    statement transaction in a session.
    
    Remove a piece of dead code that has also become redundant
    after the fix for Bug 37521.
    ec2c3bf2
events.cc 33.4 KB