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マクロでクエリキャッシュを無効化する