• unknown's avatar
    Bug #29644: alter table hangs if records locked in share mode · 1fe34a92
    unknown authored
    by long running transaction
    
    On Windows opened files can't be deleted. There was a special
    upgraded lock mode (TL_WRITE instead of TL_WRITE_ALLOW_READ) 
    in ALTER TABLE to make sure nobody has the table opened
    when deleting the old table in ALTER TABLE. This special mode
    was causing ALTER TABLE to hang waiting on a lock inside InnoDB.
    This special lock is no longer necessary as the server is 
    closing the tables it needs to delete in ALTER TABLE.
    Fixed by removing the special lock.
    Note that this also reverses the fix for bug 17264 that deals with
    another consequence of this special lock mode being used.
    
    
    mysql-test/r/innodb_mysql.result:
      Bug #29644: test case
    mysql-test/t/innodb_mysql.test:
      Bug #29644: test case
    sql/ha_innodb.cc:
      Bug #29644: reverse the (now excessive) fix
      for bug 17264 (but leave the test case).
    sql/sql_base.cc:
      Bug #29644: don't need a special lock mode for Win32 anymore: 
      the table is closed before the drop.
    1fe34a92
sql_base.cc 194 KB