6.RENAME TABLE例子
得到源表和目的表的name-lock锁:在table cache缓存内插入特殊的TABLE实例的占位符并等待直到这些表的所有实例都关闭
重命名这些表的.frm文件和调用handler::rename_table()方法
删除name-lock锁
在整个解析过程中,都使用LOCK_open
T@10: | query: rename table t1 to t2
T@10: | >mysql_parse
T@10: | | >mysql_execute_command
T@10: | | | >mysql_rename_tables
T@10: | | | | >lock_table_names
T@10: | | | | | >lock_table_name
T@10: | | | | | | enter: db: test name: t1 T@10: | | | | | <lock_table_name
T@10: | | | | | >remove_table_from_cache
T@10: | | | | | | enter: Table: 'test.t1' flags: 0
T@10: | | | | | | >hash_delete
T@10: | | | | | | | >free_cache_entry
T@10: | | | | | | | | >closefrm
T@10: | | | | | | | | | >ha_innobase::close T@10: | | | | | | | | | <ha_innobase::close T@10: | | | | | | | | <closefrm
T@10: | | | | | | | <free_cache_entry
T@10: | | | | | | <hash_delete
T@10: | | | | | <remove_table_from_cache
T@10: | | | | | >lock_table_name
T@10: | | | | | | enter: db: test name: t2 T@10: | | | | | <lock_table_name
T@10: | | | | | >remove_table_from_cache
T@10: | | | | | | enter: Table: 'test.t2' flags: 0
T@10: | | | | | <remove_table_from_cache
T@10: | | | | <lock_table_names
T@10: | | | | >rename_tables
T@10: | | | | | >do_rename
T@10: | | | | | | >mysql_rename_table
T@10: | | | | | | | >ha_innobase::rename_table
T@10: | | | | | | | <ha_innobase::rename_table T@10: | | | | | | | >my_rename
T@10: | | | | | | | | my: from ./test/t1.frm to ./test/t2.frm MyFlags 16
T@10: | | | | | | | <my_rename
T@10: | | | | | | <mysql_rename_table
T@10: | | | | | <do_rename T@10: | | | | <rename_tables
T@10: | | | | >unlock_table_names
T@10: | | | | | >unlock_table_name
T@10: | | | | | | >hash_delete
T@10: | | | | | | | >free_cache_entry
T@10: | | | | | | | <free_cache_entry
T@10: | | | | | | <hash_delete
T@10: | | | | | <unlock_table_name
T@10: | | | | | >unlock_table_name
T@10: | | | | | | >hash_delete
T@10: | | | | | | | >free_cache_entry
T@10: | | | | | | | <free_cache_entry
T@10: | | | | | | <hash_delete
T@10: | | | | | <unlock_table_name
T@10: | | | | <unlock_table_names
T@10: | | | <mysql_rename_tables
T@10: | | <mysql_execute_command
T@10: | <mysql_parse
T@10: | >mysql_parse
T@10: | | >mysql_execute_command
T@10: | | | >mysql_rename_tables
T@10: | | | | >lock_table_names
T@10: | | | | | >lock_table_name
T@10: | | | | | | enter: db: test name: t1 T@10: | | | | | <lock_table_name
T@10: | | | | | >remove_table_from_cache
T@10: | | | | | | enter: Table: 'test.t1' flags: 0
T@10: | | | | | | >hash_delete
T@10: | | | | | | | >free_cache_entry
T@10: | | | | | | | | >closefrm
T@10: | | | | | | | | | >ha_innobase::close T@10: | | | | | | | | | <ha_innobase::close T@10: | | | | | | | | <closefrm
T@10: | | | | | | | <free_cache_entry
T@10: | | | | | | <hash_delete
T@10: | | | | | <remove_table_from_cache
T@10: | | | | | >lock_table_name
T@10: | | | | | | enter: db: test name: t2 T@10: | | | | | <lock_table_name
T@10: | | | | | >remove_table_from_cache
T@10: | | | | | | enter: Table: 'test.t2' flags: 0
T@10: | | | | | <remove_table_from_cache
T@10: | | | | <lock_table_names
T@10: | | | | >rename_tables
T@10: | | | | | >do_rename
T@10: | | | | | | >mysql_rename_table
T@10: | | | | | | | >ha_innobase::rename_table
T@10: | | | | | | | <ha_innobase::rename_table T@10: | | | | | | | >my_rename
T@10: | | | | | | | | my: from ./test/t1.frm to ./test/t2.frm MyFlags 16
T@10: | | | | | | | <my_rename
T@10: | | | | | | <mysql_rename_table
T@10: | | | | | <do_rename T@10: | | | | <rename_tables
T@10: | | | | >unlock_table_names
T@10: | | | | | >unlock_table_name
T@10: | | | | | | >hash_delete
T@10: | | | | | | | >free_cache_entry
T@10: | | | | | | | <free_cache_entry
T@10: | | | | | | <hash_delete
T@10: | | | | | <unlock_table_name
T@10: | | | | | >unlock_table_name
T@10: | | | | | | >hash_delete
T@10: | | | | | | | >free_cache_entry
T@10: | | | | | | | <free_cache_entry
T@10: | | | | | | <hash_delete
T@10: | | | | | <unlock_table_name
T@10: | | | | <unlock_table_names
T@10: | | | <mysql_rename_tables
T@10: | | <mysql_execute_command
T@10: | <mysql_parse