• Jon Olav Hauglid's avatar
    Bug #55498 SHOW CREATE TRIGGER takes wrong type of metadata lock · 97bfd559
    Jon Olav Hauglid authored
    The first problem was that SHOW CREATE TRIGGER took a stronger metadata
    lock than required. This caused the statement to be blocked when it was
    not needed. For example, LOCK TABLE WRITE in one connection would block
    SHOW CREATE TRIGGER in another connection.
    
    Another problem was that a SHOW CREATE TRIGGER statement issued inside
    a transaction did not release its metadata locks at the end of the
    statement execution. This happened even if SHOW CREATE TRIGGER is an
    information statement. The consequence was that SHOW CREATE TRIGGER
    was able to block other connections from accessing the table
    (e.g. using ALTER TABLE).
    
    This patch fixes the problem by changing SHOW CREATE TRIGGER to take
    a MDL_SHARED_HIGH_PRIO metadata lock similar to what is already done
    for SHOW CREATE TABLE. The patch also changes SHOW CREATE TRIGGER to
    explicitly release any metadata locks taken by the statement after
    it completes.
    
    Test case added to show_check.test.
    97bfd559
sql_show.cc 269 KB