mysql_alter_table関数
適当に抜粋。
- mysql_ha_flush関数でテーブルをフラッシュ
- open_ltable関数でテーブルをオープン、ロック種別はTL_WRITE_ALLOW_READ
- check_engine関数でALTER後のストレージエンジン名をチェック
- ha_check_storage_engine関数でALTER前後のストレージエンジンがALTER TABLEを処理できるかチェック
- thd->proc_infoを"rename"に変更
- close_cached_table関数でテーブルキャッシュからテーブルを削除
- mysql_rename_table関数でテーブル名を変更
- wait_while_table_is_used関数で他スレッドによる対象テーブルの操作完了を待つ
- MySQL_LOG::write関数でバイナリログにログを出力
- query_cache_invalidate3マクロでクエリキャッシュを無効化する