📄 alter_table-big.test
字号:
# In order to be more or less robust test for bug#25044 has to take# significant time (e.g. about 9 seconds on my (Dmitri's) computer)# so we probably want execute it only in --big-test mode.# Also in 5.1 this test will require statement-based binlog.--source include/big_test.inc## Test for bug #25044 "ALTER TABLE ... ENABLE KEYS acquires global# 'opening tables' lock".## ALTER TABLE ... ENABLE KEYS should not acquire LOCK_open mutex for# the whole its duration as it prevents other queries from execution.--disable_warningsdrop table if exists t1, t2;--enable_warningsconnect (addconroot, localhost, root,,);connection default;create table t1 (n1 int, n2 int, n3 int, key (n1, n2, n3), key (n2, n3, n1), key (n3, n1, n2));create table t2 (i int);# Populating 't1' table with keys disabled, so ALTER TABLE .. ENABLE KEYS# will run for some timealter table t1 disable keys;--disable_query_loginsert into t1 values (RAND()*1000,RAND()*1000,RAND()*1000);let $1=19;while ($1){ eval insert into t1 select RAND()*1000,RAND()*1000,RAND()*1000 from t1; dec $1;}--enable_query_log# Later we use binlog to check the order in which statements are# executed so let us reset it first.reset master;--send alter table t1 enable keys;connection addconroot;let $show_type= PROCESSLIST;let $show_pattern= '%Repair by sorting%alter table t1 enable keys%';--source include/wait_show_pattern.inc# This statement should not be blocked by in-flight ALTER and therefore# should be executed and written to binlog before ALTER TABLE ... ENABLE KEYS# finishes.insert into t2 values (1);# And this should wait until the end of ALTER TABLE ... ENABLE KEYS.insert into t1 values (1, 1, 1);connection default;--reap# Check that statements were executed/binlogged in correct order.--replace_column 2 # 5 #show binlog events in 'master-bin.000001' from 98;# Clean updrop tables t1, t2;--echo End of 5.0 tests
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -