127 lines
5.5 KiB
Plaintext
127 lines
5.5 KiB
Plaintext
drop table if exists t1, t2;
|
|
set debug_sync='RESET';
|
|
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);
|
|
alter table t1 disable keys;
|
|
insert into t1 values (1, 2, 3);
|
|
reset master;
|
|
set debug_sync='alter_table_enable_indexes SIGNAL parked WAIT_FOR go';
|
|
alter table t1 enable keys;;
|
|
set debug_sync='now WAIT_FOR parked';
|
|
insert into t2 values (1);
|
|
insert into t1 values (1, 1, 1);;
|
|
set debug_sync='now SIGNAL go';
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Query # # use `test`; insert into t2 values (1)
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Query # # use `test`; alter table t1 enable keys
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Query # # use `test`; insert into t1 values (1, 1, 1)
|
|
master-bin.000001 # Query # # COMMIT
|
|
drop tables t1, t2;
|
|
set debug_sync='RESET';
|
|
End of 5.0 tests
|
|
drop table if exists t1, t2, t3;
|
|
create table t1 (i int);
|
|
reset master;
|
|
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
|
|
alter table t1 change i c char(10) default 'Test1';;
|
|
set debug_sync='now WAIT_FOR parked';
|
|
insert into t1 values ();;
|
|
set debug_sync='now SIGNAL go';
|
|
select * from t1;
|
|
c
|
|
Test1
|
|
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
|
|
alter table t1 change c vc varchar(100) default 'Test2';;
|
|
set debug_sync='now WAIT_FOR parked';
|
|
rename table t1 to t2;;
|
|
set debug_sync='now SIGNAL go';
|
|
drop table t2;
|
|
create table t1 (i int);
|
|
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
|
|
alter table t1 change i c char(10) default 'Test3', rename to t2;;
|
|
set debug_sync='now WAIT_FOR parked';
|
|
insert into t2 values();;
|
|
set debug_sync='now SIGNAL go';
|
|
select * from t2;
|
|
c
|
|
Test3
|
|
alter table t2 change c vc varchar(100) default 'Test2', rename to t1;;
|
|
rename table t1 to t3;
|
|
drop table t3;
|
|
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
|
|
set debug_sync='RESET';
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query # # use `test`; alter table t1 change i c char(10) default 'Test1'
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Query # # use `test`; insert into t1 values ()
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Query # # use `test`; alter table t1 change c vc varchar(100) default 'Test2'
|
|
master-bin.000001 # Query # # use `test`; rename table t1 to t2
|
|
master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */
|
|
master-bin.000001 # Query # # use `test`; create table t1 (i int)
|
|
master-bin.000001 # Query # # use `test`; alter table t1 change i c char(10) default 'Test3', rename to t2
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Query # # use `test`; insert into t2 values()
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Query # # use `test`; alter table t2 change c vc varchar(100) default 'Test2', rename to t1
|
|
master-bin.000001 # Query # # use `test`; rename table t1 to t3
|
|
master-bin.000001 # Query # # use `test`; DROP TABLE `t3` /* generated by server */
|
|
End of 5.1 tests
|
|
#
|
|
# BUG#29375764: SIMPLE ALTER CAUSE UNNECESSARY INNODB INDEX REBUILDS,
|
|
# 5.7.23 OR LATER 5.7 RLSES
|
|
#
|
|
# Copy the zipped 5.7.22 data directory and unzip it.
|
|
# Restart the server with the 5.7.22 data directory.
|
|
# UPGRADE
|
|
mysql.columns_priv OK
|
|
mysql.db OK
|
|
mysql.engine_cost OK
|
|
mysql.event OK
|
|
mysql.func OK
|
|
mysql.general_log OK
|
|
mysql.gtid_executed OK
|
|
mysql.help_category OK
|
|
mysql.help_keyword OK
|
|
mysql.help_relation OK
|
|
mysql.help_topic OK
|
|
mysql.innodb_index_stats OK
|
|
mysql.innodb_table_stats OK
|
|
mysql.ndb_binlog_index OK
|
|
mysql.plugin OK
|
|
mysql.proc OK
|
|
mysql.procs_priv OK
|
|
mysql.proxies_priv OK
|
|
mysql.server_cost OK
|
|
mysql.servers OK
|
|
mysql.slave_master_info OK
|
|
mysql.slave_relay_log_info OK
|
|
mysql.slave_worker_info OK
|
|
mysql.slow_log OK
|
|
mysql.tables_priv OK
|
|
mysql.time_zone OK
|
|
mysql.time_zone_leap_second OK
|
|
mysql.time_zone_name OK
|
|
mysql.time_zone_transition OK
|
|
mysql.time_zone_transition_type OK
|
|
mysql.user OK
|
|
my_db.t1 OK
|
|
sys.sys_config OK
|
|
SET DEBUG="+d, assert_index_def_has_no_pack_flag";
|
|
# Without the patch, an assert is triggered, indicating that index definitions
|
|
# have changed that would result in a index rebuild.
|
|
ALTER TABLE my_db.t1 COMMENT "No index rebuild necessary";
|
|
# CLEANUP
|
|
DROP TABLE my_db.t1;
|
|
DROP DATABASE my_db;
|
|
# Remove copied files and directories.
|
|
# Restart server with default options.
|