diff options
Diffstat (limited to 'mysql-test')
39 files changed, 846 insertions, 276 deletions
diff --git a/mysql-test/include/io_thd_fault_injection.inc b/mysql-test/include/io_thd_fault_injection.inc index 11479b3a66c..67b41371913 100644 --- a/mysql-test/include/io_thd_fault_injection.inc +++ b/mysql-test/include/io_thd_fault_injection.inc @@ -1,20 +1,19 @@ # # Takes the flag as an argument: -# -- let $io_thd_injection_fault_flag=+d,fault_injection_new_file_rotate_event +# -- let $io_thd_injection_fault_flag=d,fault_injection_new_file_rotate_event # -- source include/io_thd_fault_injection.inc # -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; -- disable_warnings -- source include/stop_slave.inc -- enable_warnings --- eval SET GLOBAL debug_dbug="+d,$io_thd_injection_fault_flag" +-- eval SET @@global.debug_dbug="d,$io_thd_injection_fault_flag" START SLAVE io_thread; -- source include/wait_for_slave_io_error.inc --- eval SET GLOBAL debug_dbug="-d,$io_thd_injection_fault_flag" -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; # restart because slave is in bad shape --let $rpl_server_number= 2 diff --git a/mysql-test/main/derived_cond_pushdown.result b/mysql-test/main/derived_cond_pushdown.result index 7dea6a81e04..8bd25a43f3c 100644 --- a/mysql-test/main/derived_cond_pushdown.result +++ b/mysql-test/main/derived_cond_pushdown.result @@ -10578,6 +10578,18 @@ a b max_c a b dayname(v1.b) DROP VIEW v1; DROP TABLE t1, t2; SET optimizer_switch=DEFAULT; +# +# MDEV-17177: an attempt to push down IN predicate when one of +# the arguments is too complex to be cloned +# +CREATE TABLE t1 (a VARCHAR(8)); +INSERT INTO t1 VALUES ('abc'),('def'); +CREATE VIEW v1 AS SELECT * FROM t1 GROUP BY a; +SELECT * FROM v1 WHERE IF( a REGEXP 'def', 'foo', a ) IN ('abc', 'foobar'); +a +abc +DROP VIEW v1; +DROP TABLE t1; # End of 10.2 tests # # MDEV-14579: pushdown conditions into materialized views/derived tables @@ -16912,6 +16924,91 @@ Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`a` AS `a` from `test`.`t1` semi join ((/* select#3 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`a` AS `a` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`ro_id` = `test`.`t1`.`id` and `test`.`t2`.`flag` = 1) where `test`.`t1`.`id` = `test`.`t1`.`id` group by `test`.`t1`.`id`) `dt`) where `dt`.`id` = `test`.`t1`.`id` drop view v1; drop table t1,t2; +# +# MDEV-21883: potentially splittable materialized derived +# that uses a join of 32 tables +# +CREATE TABLE t (id INT NOT NULL PRIMARY KEY); +INSERT INTO t values (1),(2),(3); +set statement optimizer_switch='split_materialized=off' for SELECT t.id FROM t +LEFT JOIN ( +SELECT t0.id FROM t AS t0 +LEFT JOIN t AS t1 ON 0=1 +LEFT JOIN t AS t2 ON 0=1 +LEFT JOIN t AS t3 ON 0=1 +LEFT JOIN t AS t4 ON 0=1 +LEFT JOIN t AS t5 ON 0=1 +LEFT JOIN t AS t6 ON 0=1 +LEFT JOIN t AS t7 ON 0=1 +LEFT JOIN t AS t8 ON 0=1 +LEFT JOIN t AS t9 ON 0=1 +LEFT JOIN t AS t10 ON 0=1 +LEFT JOIN t AS t11 ON 0=1 +LEFT JOIN t AS t12 ON 0=1 +LEFT JOIN t AS t13 ON 0=1 +LEFT JOIN t AS t14 ON 0=1 +LEFT JOIN t AS t15 ON 0=1 +LEFT JOIN t AS t16 ON 0=1 +LEFT JOIN t AS t17 ON 0=1 +LEFT JOIN t AS t18 ON 0=1 +LEFT JOIN t AS t19 ON 0=1 +LEFT JOIN t AS t20 ON 0=1 +LEFT JOIN t AS t21 ON 0=1 +LEFT JOIN t AS t22 ON 0=1 +LEFT JOIN t AS t23 ON 0=1 +LEFT JOIN t AS t24 ON 0=1 +LEFT JOIN t AS t25 ON 0=1 +LEFT JOIN t AS t26 ON 0=1 +LEFT JOIN t AS t27 ON 0=1 +LEFT JOIN t AS t28 ON 0=1 +LEFT JOIN t AS t29 ON 0=1 +LEFT JOIN t AS t30 ON 0=1 +LEFT JOIN t AS t31 ON 0=1 +GROUP BY t0.id) AS dt ON dt.id = t.id; +id +1 +2 +3 +set statement optimizer_switch='split_materialized=on' for SELECT t.id FROM t +LEFT JOIN ( +SELECT t0.id FROM t AS t0 +LEFT JOIN t AS t1 ON 0=1 +LEFT JOIN t AS t2 ON 0=1 +LEFT JOIN t AS t3 ON 0=1 +LEFT JOIN t AS t4 ON 0=1 +LEFT JOIN t AS t5 ON 0=1 +LEFT JOIN t AS t6 ON 0=1 +LEFT JOIN t AS t7 ON 0=1 +LEFT JOIN t AS t8 ON 0=1 +LEFT JOIN t AS t9 ON 0=1 +LEFT JOIN t AS t10 ON 0=1 +LEFT JOIN t AS t11 ON 0=1 +LEFT JOIN t AS t12 ON 0=1 +LEFT JOIN t AS t13 ON 0=1 +LEFT JOIN t AS t14 ON 0=1 +LEFT JOIN t AS t15 ON 0=1 +LEFT JOIN t AS t16 ON 0=1 +LEFT JOIN t AS t17 ON 0=1 +LEFT JOIN t AS t18 ON 0=1 +LEFT JOIN t AS t19 ON 0=1 +LEFT JOIN t AS t20 ON 0=1 +LEFT JOIN t AS t21 ON 0=1 +LEFT JOIN t AS t22 ON 0=1 +LEFT JOIN t AS t23 ON 0=1 +LEFT JOIN t AS t24 ON 0=1 +LEFT JOIN t AS t25 ON 0=1 +LEFT JOIN t AS t26 ON 0=1 +LEFT JOIN t AS t27 ON 0=1 +LEFT JOIN t AS t28 ON 0=1 +LEFT JOIN t AS t29 ON 0=1 +LEFT JOIN t AS t30 ON 0=1 +LEFT JOIN t AS t31 ON 0=1 +GROUP BY t0.id) AS dt ON dt.id = t.id; +id +1 +2 +3 +DROP TABLE t; # End of 10.3 tests # # MDEV-18679: materialized view with SELECT S containing materialized diff --git a/mysql-test/main/derived_cond_pushdown.test b/mysql-test/main/derived_cond_pushdown.test index 152a130b8af..b2f97029ede 100644 --- a/mysql-test/main/derived_cond_pushdown.test +++ b/mysql-test/main/derived_cond_pushdown.test @@ -2169,6 +2169,22 @@ DROP TABLE t1, t2; SET optimizer_switch=DEFAULT; + + +--echo # +--echo # MDEV-17177: an attempt to push down IN predicate when one of +--echo # the arguments is too complex to be cloned +--echo # + +CREATE TABLE t1 (a VARCHAR(8)); +INSERT INTO t1 VALUES ('abc'),('def'); +CREATE VIEW v1 AS SELECT * FROM t1 GROUP BY a; + +SELECT * FROM v1 WHERE IF( a REGEXP 'def', 'foo', a ) IN ('abc', 'foobar'); + +DROP VIEW v1; +DROP TABLE t1; + --echo # End of 10.2 tests --echo # @@ -3371,6 +3387,57 @@ eval explain extended $q2; drop view v1; drop table t1,t2; +--echo # +--echo # MDEV-21883: potentially splittable materialized derived +--echo # that uses a join of 32 tables +--echo # + +CREATE TABLE t (id INT NOT NULL PRIMARY KEY); +INSERT INTO t values (1),(2),(3); + +let $q= +SELECT t.id FROM t +LEFT JOIN ( + SELECT t0.id FROM t AS t0 + LEFT JOIN t AS t1 ON 0=1 + LEFT JOIN t AS t2 ON 0=1 + LEFT JOIN t AS t3 ON 0=1 + LEFT JOIN t AS t4 ON 0=1 + LEFT JOIN t AS t5 ON 0=1 + LEFT JOIN t AS t6 ON 0=1 + LEFT JOIN t AS t7 ON 0=1 + LEFT JOIN t AS t8 ON 0=1 + LEFT JOIN t AS t9 ON 0=1 + LEFT JOIN t AS t10 ON 0=1 + LEFT JOIN t AS t11 ON 0=1 + LEFT JOIN t AS t12 ON 0=1 + LEFT JOIN t AS t13 ON 0=1 + LEFT JOIN t AS t14 ON 0=1 + LEFT JOIN t AS t15 ON 0=1 + LEFT JOIN t AS t16 ON 0=1 + LEFT JOIN t AS t17 ON 0=1 + LEFT JOIN t AS t18 ON 0=1 + LEFT JOIN t AS t19 ON 0=1 + LEFT JOIN t AS t20 ON 0=1 + LEFT JOIN t AS t21 ON 0=1 + LEFT JOIN t AS t22 ON 0=1 + LEFT JOIN t AS t23 ON 0=1 + LEFT JOIN t AS t24 ON 0=1 + LEFT JOIN t AS t25 ON 0=1 + LEFT JOIN t AS t26 ON 0=1 + LEFT JOIN t AS t27 ON 0=1 + LEFT JOIN t AS t28 ON 0=1 + LEFT JOIN t AS t29 ON 0=1 + LEFT JOIN t AS t30 ON 0=1 + LEFT JOIN t AS t31 ON 0=1 + GROUP BY t0.id) AS dt ON dt.id = t.id; + +eval set statement optimizer_switch='split_materialized=off' for $q; + +eval set statement optimizer_switch='split_materialized=on' for $q; + +DROP TABLE t; + --echo # End of 10.3 tests --echo # diff --git a/mysql-test/main/group_by.result b/mysql-test/main/group_by.result index d5d987b9d6d..ecd115c2dd0 100644 --- a/mysql-test/main/group_by.result +++ b/mysql-test/main/group_by.result @@ -2870,6 +2870,20 @@ GROUP BY REPEAT((BINARY pk), v1), AES_DECRYPT((@A := i1), 20852) WITH ROLLUP HAV 1 drop table t1; # +# MDEV-22019: Sig 11 in next_breadth_first_tab | max_sort_length setting + double +# GROUP BY leads to crash +# +CALL mtr.add_suppression("Out of sort memory"); +CALL mtr.add_suppression("Sort aborted"); +SET @save_max_sort_length= @@max_sort_length; +SET max_sort_length=2000000; +SELECT * FROM information_schema.tables t JOIN information_schema.columns c +ON t.table_schema=c.table_schema +WHERE c.table_schema=(SELECT COUNT(*) FROM INFORMATION_SCHEMA.columns GROUP BY column_type) +GROUP BY t.table_name; +ERROR HY001: Out of sort memory, consider increasing server sort buffer size +SET max_sort_length= @save_max_sort_length; +# # MDEV-16170 # Server crashes in Item_null_result::type_handler on SELECT with ROLLUP # @@ -2880,3 +2894,4 @@ f COUNT(*) 1 1 NULL 1 DROP TABLE t1; +# End of 10.3 tests diff --git a/mysql-test/main/group_by.test b/mysql-test/main/group_by.test index fdebe058043..3dc0ee9f00b 100644 --- a/mysql-test/main/group_by.test +++ b/mysql-test/main/group_by.test @@ -1983,6 +1983,23 @@ GROUP BY REPEAT((BINARY pk), v1), AES_DECRYPT((@A := i1), 20852) WITH ROLLUP HAV drop table t1; --echo # +--echo # MDEV-22019: Sig 11 in next_breadth_first_tab | max_sort_length setting + double +--echo # GROUP BY leads to crash +--echo # + + +CALL mtr.add_suppression("Out of sort memory"); +CALL mtr.add_suppression("Sort aborted"); +SET @save_max_sort_length= @@max_sort_length; +SET max_sort_length=2000000; +--error ER_OUT_OF_SORTMEMORY +SELECT * FROM information_schema.tables t JOIN information_schema.columns c +ON t.table_schema=c.table_schema +WHERE c.table_schema=(SELECT COUNT(*) FROM INFORMATION_SCHEMA.columns GROUP BY column_type) +GROUP BY t.table_name; +SET max_sort_length= @save_max_sort_length; + +--echo # --echo # MDEV-16170 --echo # Server crashes in Item_null_result::type_handler on SELECT with ROLLUP --echo # @@ -1991,3 +2008,5 @@ CREATE TABLE t1 (d DATE); INSERT INTO t1 VALUES ('2032-10-08'); SELECT d != '2023-03-04' AS f, COUNT(*) FROM t1 GROUP BY d WITH ROLLUP; DROP TABLE t1; + +--echo # End of 10.3 tests diff --git a/mysql-test/main/innodb_mysql_lock.result b/mysql-test/main/innodb_mysql_lock.result index 584ab19b2ee..25cf2882cd0 100644 --- a/mysql-test/main/innodb_mysql_lock.result +++ b/mysql-test/main/innodb_mysql_lock.result @@ -21,6 +21,7 @@ connection con3; set @@autocommit=0; DROP TABLE t1; connection con1; +# Waiting for until transaction will be locked inside innodb subsystem # Connection 1 is now holding the lock. # Issuing insert from connection 1 while connection 2&3 # is waiting for the lock should give a deadlock error. diff --git a/mysql-test/main/innodb_mysql_lock.test b/mysql-test/main/innodb_mysql_lock.test index 24ace437c50..6e746468dba 100644 --- a/mysql-test/main/innodb_mysql_lock.test +++ b/mysql-test/main/innodb_mysql_lock.test @@ -1,3 +1,4 @@ +--source include/have_metadata_lock_info.inc -- source include/have_innodb.inc # Save the initial number of concurrent sessions. @@ -36,10 +37,12 @@ set @@autocommit=0; --send DROP TABLE t1 connection con1; +--echo # Waiting for until transaction will be locked inside innodb subsystem let $wait_condition= - SELECT COUNT(*) = 1 FROM information_schema.processlist - WHERE info = "INSERT INTO t1 VALUES (1)" and - state = "update"; + SELECT COUNT(*) = 1 FROM information_schema.innodb_trx + WHERE trx_query = 'INSERT INTO t1 VALUES (1)' AND + trx_operation_state = 'inserting' AND + trx_state = 'LOCK WAIT'; --source include/wait_condition.inc let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist diff --git a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result index eb58dd06997..c8a10577517 100644 --- a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result +++ b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result @@ -22,7 +22,7 @@ master-bin.000001 # master-bin.000002 # ###################### TEST #2 RESET MASTER; -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; FLUSH LOGS; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) @@ -30,7 +30,7 @@ ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) show binary logs; Log_name File_size master-bin.000001 # -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; RESET MASTER; ###################### TEST #3 CREATE TABLE t1 (a INT); @@ -44,11 +44,11 @@ show binary logs; Log_name File_size master-bin.000001 # master-bin.000002 # -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; ###################### TEST #4 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) @@ -56,21 +56,21 @@ ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) SELECT count(*) FROM t2; count(*) 1 -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; ###################### TEST #5 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166-2.data' INTO TABLE t2; # assert: must show one entry SELECT count(*) FROM t2; count(*) 1 -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; ###################### TEST #6 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; SET AUTOCOMMIT=0; INSERT INTO t2 VALUES ('muse'); LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; @@ -83,11 +83,11 @@ SELECT count(*) FROM t2; count(*) 3 SET AUTOCOMMIT= 1; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; ###################### TEST #7 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; SET @@binlog_annotate_row_events= 0; SELECT count(*) FROM t4; count(*) @@ -100,14 +100,14 @@ SELECT count(*) FROM t4; count(*) 1 ### check that the incident event is written to the current log -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Incident # # #1 (LOST_EVENTS) DELETE FROM t4; RESET MASTER; ###################### TEST #8 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; # must show 0 entries SELECT count(*) FROM t4; count(*) @@ -147,9 +147,9 @@ count(*) SELECT count(*) FROM t2; count(*) 0 -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; ###################### TEST #9 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; SET SQL_LOG_BIN=0; INSERT INTO t2 VALUES ('aaa'), ('bbb'), ('ccc'), ('ddd'); INSERT INTO t4 VALUES ('eee'), ('fff'), ('ggg'), ('hhh'); @@ -170,17 +170,17 @@ SELECT count(*) FROM t4; count(*) 0 SET SQL_LOG_BIN=1; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; ###################### TEST #10 call mtr.add_suppression("MYSQL_BIN_LOG::open failed to sync the index file."); call mtr.add_suppression("Could not use .*"); RESET MASTER; SHOW WARNINGS; Level Code Message -SET GLOBAL debug_dbug="+d,fault_injection_registering_index"; +SET @@global.debug_dbug="d,fault_injection_registering_index"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin.000002' (errno: 1 "Operation not permitted") -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; SHOW BINARY LOGS; ERROR HY000: You are not using binary logging CREATE TABLE t5 (a INT); @@ -192,10 +192,10 @@ DROP TABLE t5; flush tables; ###################### TEST #11 include/rpl_restart_server.inc [server_number=1] -SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; +SET @@global.debug_dbug="d,fault_injection_openning_index"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin.index' (errno: 1 "Operation not permitted") -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; RESET MASTER; ERROR HY000: Binlog closed, cannot RESET MASTER CREATE TABLE t5 (a INT); @@ -207,10 +207,10 @@ DROP TABLE t5; flush tables; include/rpl_restart_server.inc [server_number=1] ###################### TEST #12 -SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; +SET @@global.debug_dbug="d,fault_injection_new_file_rotate_event"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin' (errno: 2 "No such file or directory") -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; RESET MASTER; ERROR HY000: Binlog closed, cannot RESET MASTER CREATE TABLE t5 (a INT); @@ -237,44 +237,40 @@ call mtr.add_suppression("Could not use .*"); call mtr.add_suppression("MYSQL_BIN_LOG::open failed to sync the index file."); call mtr.add_suppression("Can't generate a unique log-filename .*"); ###################### TEST #13 -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; START SLAVE io_thread; include/wait_for_slave_io_error.inc [errno=1595] Last_IO_Error = 'Relay log write failure: could not queue event from master' -SET GLOBAL debug_dbug="-d,error_unique_log_filename"; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; include/rpl_restart_server.inc [server_number=2] ###################### TEST #14 -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; +SET @@global.debug_dbug="d,fault_injection_new_file_rotate_event"; START SLAVE io_thread; include/wait_for_slave_io_error.inc [errno=1595] Last_IO_Error = 'Relay log write failure: could not queue event from master' -SET GLOBAL debug_dbug="-d,fault_injection_new_file_rotate_event"; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; include/rpl_restart_server.inc [server_number=2] ###################### TEST #15 -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,fault_injection_registering_index"; +SET @@global.debug_dbug="d,fault_injection_registering_index"; START SLAVE io_thread; include/wait_for_slave_io_error.inc [errno=1595] Last_IO_Error = 'Relay log write failure: could not queue event from master' -SET GLOBAL debug_dbug="-d,fault_injection_registering_index"; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; include/rpl_restart_server.inc [server_number=2] ###################### TEST #16 -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; +SET @@global.debug_dbug="d,fault_injection_openning_index"; START SLAVE io_thread; include/wait_for_slave_io_error.inc [errno=1595] Last_IO_Error = 'Relay log write failure: could not queue event from master' -SET GLOBAL debug_dbug="-d,fault_injection_openning_index"; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; include/rpl_restart_server.inc [server_number=2] include/stop_slave_sql.inc Warnings: diff --git a/mysql-test/suite/binlog_encryption/rpl_corruption.result b/mysql-test/suite/binlog_encryption/rpl_corruption.result index f32b7c58ad1..73bb373d6be 100644 --- a/mysql-test/suite/binlog_encryption/rpl_corruption.result +++ b/mysql-test/suite/binlog_encryption/rpl_corruption.result @@ -13,42 +13,40 @@ connection master; CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10), c VARCHAR(100)); include/stop_slave.inc # 2. Corruption in master binlog and SHOW BINLOG EVENTS -set @saved_dbug = @@global.debug_dbug; -SET GLOBAL debug_dbug="+d,corrupt_read_log_event_char"; +SET @saved_dbug = @@global.debug_dbug; +SET @@global.debug_dbug="d,corrupt_read_log_event_char"; SHOW BINLOG EVENTS; ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error -SET GLOBAL debug_dbug="-d,corrupt_read_log_event_char"; +SET @@global.debug_dbug=@saved_dbug; # 3. Master read a corrupted event from binlog and send the error to slave -SET GLOBAL debug_dbug="+d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug="d,corrupt_read_log_event2_set"; connection slave; START SLAVE IO_THREAD; include/wait_for_slave_io_error.inc [errno=1236] connection master; -SET GLOBAL debug_dbug="-d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug=@saved_dbug; # 4. Master read a corrupted event from binlog and send it to slave connection master; SET GLOBAL master_verify_checksum=0; -SET GLOBAL debug_dbug="+d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug="d,corrupt_read_log_event2_set"; connection slave; START SLAVE IO_THREAD; include/wait_for_slave_io_error.inc [errno=1595,1743] connection master; -SET GLOBAL debug_dbug="-d,corrupt_read_log_event2_set"; -SET GLOBAL debug_dbug=@saved_dbug; +SET @@global.debug_dbug=@saved_dbug; SET GLOBAL master_verify_checksum=1; # 5. Slave. Corruption in network connection slave; SET @saved_dbug_slave = @@GLOBAL.debug_dbug; -SET GLOBAL debug_dbug="+d,corrupt_queue_event"; +SET @@global.debug_dbug="d,corrupt_queue_event"; START SLAVE IO_THREAD; include/wait_for_slave_io_error.inc [errno=1595,1743] -SET GLOBAL debug_dbug="-d,corrupt_queue_event"; +SET @@global.debug_dbug=@saved_dbug_slave; # 6. Slave. Corruption in relay log -SET GLOBAL debug_dbug="+d,corrupt_read_log_event_char"; +SET @@global.debug_dbug="d,corrupt_read_log_event_char"; START SLAVE SQL_THREAD; include/wait_for_slave_sql_error.inc [errno=1593] -SET GLOBAL debug_dbug="-d,corrupt_read_log_event_char"; -SET GLOBAL debug_dbug=@saved_dbug_slave; +SET @@global.debug_dbug=@saved_dbug_slave; # 7. Seek diff for tables on master and slave connection slave; include/start_slave.inc diff --git a/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result b/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result index ffc821b6ecc..e3e5ee6857c 100644 --- a/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result +++ b/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result @@ -12,7 +12,7 @@ CREATE TABLE `t` ( INSERT INTO t VALUES (REPEAT('g', 16000), REPEAT('x', 16000), DEFAULT, "kk", 1); INSERT INTO t VALUES (REPEAT('a', 16000), REPEAT('b', 16000), DEFAULT, "mm", 2); CREATE INDEX idx ON t(c(100)); -SET global debug_dbug="+d,ib_purge_virtual_index_callback"; +SET global debug_dbug="d,ib_purge_virtual_index_callback"; UPDATE t SET a = REPEAT('m', 16000) WHERE a like "aaa%"; InnoDB 0 transactions not purged SET global debug_dbug=@old_dbug; @@ -27,7 +27,7 @@ i INT INSERT INTO t VALUES (REPEAT('g', 100), REPEAT('x', 100), DEFAULT, "kk", 1); INSERT INTO t VALUES (REPEAT('a', 100), REPEAT('b', 100), DEFAULT, "mm", 2); CREATE INDEX idx ON t(c(100)); -SET global debug_dbug="+d,ib_purge_virtual_index_callback"; +SET global debug_dbug="d,ib_purge_virtual_index_callback"; UPDATE t SET a = REPEAT('m', 100) WHERE a like "aaa%"; InnoDB 0 transactions not purged SET global debug_dbug=@old_dbug; @@ -48,7 +48,7 @@ insert into t1 values(3, 4, default); insert into t1 values(3, 12, default); insert into t1 values(4, 18, default); CREATE INDEX idx ON t1(x); -SET global debug_dbug="+d,ib_purge_virtual_index_callback"; +SET global debug_dbug="d,ib_purge_virtual_index_callback"; UPDATE t1 SET id = 10 WHERE id = 1; InnoDB 0 transactions not purged SET global debug_dbug=@old_dbug; @@ -138,7 +138,7 @@ DROP TABLE t0, t1; create table t (a blob, b blob, c blob as (concat(a,b)), h varchar(10), index (c(100))); insert t(a,b,h) values (repeat('g', 16000), repeat('x', 16000), "kk"); insert t(a,b,h) values (repeat('a', 16000), repeat('b', 16000), "mm"); -set global debug_dbug="+d,ib_purge_virtual_index_callback"; +set global debug_dbug="d,ib_purge_virtual_index_callback"; connect prevent_purge, localhost, root; start transaction with consistent snapshot; connection default; @@ -181,7 +181,7 @@ CREATE TABLE t1 (y YEAR, vy YEAR AS (y) VIRTUAL UNIQUE, pk INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 (pk,y) VALUES (1,2022); CREATE TABLE t2(f1 INT NOT NULL, PRIMARY KEY(f1))ENGINE=InnoDB; -SET GLOBAL debug_dbug = '+d,ib_purge_virtual_index_callback'; +SET GLOBAL debug_dbug = 'd,ib_purge_virtual_index_callback'; BEGIN; INSERT INTO t2(f1) VALUES(1); connection prevent_purge; @@ -209,8 +209,8 @@ DROP TABLE t1, t2; # on table with virtual columns and indexes # InnoDB 0 transactions not purged -set @saved_dbug= @@global.debug_dbug; -set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; +SET @saved_dbug= @@GLOBAL.debug_dbug; +set global debug_dbug= "d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; create table t1 ( pk serial, vb tinyblob as (b) virtual, b tinyblob, primary key(pk), index (vb(64))) @@ -219,7 +219,7 @@ insert ignore into t1 (b) values ('foo'); select * into outfile 'load.data' from t1; load data infile 'load.data' replace into table t1; set debug_sync= "now WAIT_FOR latch_released"; -set global debug_dbug= "-d,ib_purge_virtual_mdev_16222_1"; +set global debug_dbug= @saved_dbug; drop table t1; set debug_sync= "now SIGNAL drop_started WAIT_FOR got_no_such_table"; create table t1 ( @@ -255,7 +255,7 @@ SET GLOBAL innodb_debug_sync = "ib_open_after_dict_open " "SIGNAL purge_open " "WAIT_FOR select_open"; SET @saved_dbug= @@GLOBAL.debug_dbug; -set global debug_dbug= "+d,ib_purge_virtual_index_callback"; +set global debug_dbug= "d,ib_purge_virtual_index_callback"; connect purge_waiter,localhost,root; SET debug_sync= "now WAIT_FOR before_row_allocated"; connection default; diff --git a/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test b/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test index a384e0667de..69b784d497a 100644 --- a/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test +++ b/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test @@ -22,7 +22,7 @@ INSERT INTO t VALUES (REPEAT('a', 16000), REPEAT('b', 16000), DEFAULT, "mm", 2); CREATE INDEX idx ON t(c(100)); -SET global debug_dbug="+d,ib_purge_virtual_index_callback"; +SET global debug_dbug="d,ib_purge_virtual_index_callback"; UPDATE t SET a = REPEAT('m', 16000) WHERE a like "aaa%"; --source ../../innodb/include/wait_all_purged.inc SET global debug_dbug=@old_dbug; @@ -41,7 +41,7 @@ INSERT INTO t VALUES (REPEAT('a', 100), REPEAT('b', 100), DEFAULT, "mm", 2); CREATE INDEX idx ON t(c(100)); -SET global debug_dbug="+d,ib_purge_virtual_index_callback"; +SET global debug_dbug="d,ib_purge_virtual_index_callback"; UPDATE t SET a = REPEAT('m', 100) WHERE a like "aaa%"; --source ../../innodb/include/wait_all_purged.inc SET global debug_dbug=@old_dbug; @@ -68,7 +68,7 @@ insert into t1 values(4, 18, default); CREATE INDEX idx ON t1(x); -SET global debug_dbug="+d,ib_purge_virtual_index_callback"; +SET global debug_dbug="d,ib_purge_virtual_index_callback"; UPDATE t1 SET id = 10 WHERE id = 1; --source ../../innodb/include/wait_all_purged.inc SET global debug_dbug=@old_dbug; @@ -179,7 +179,7 @@ DROP TABLE t0, t1; create table t (a blob, b blob, c blob as (concat(a,b)), h varchar(10), index (c(100))); insert t(a,b,h) values (repeat('g', 16000), repeat('x', 16000), "kk"); insert t(a,b,h) values (repeat('a', 16000), repeat('b', 16000), "mm"); -set global debug_dbug="+d,ib_purge_virtual_index_callback"; +set global debug_dbug="d,ib_purge_virtual_index_callback"; connect(prevent_purge, localhost, root); start transaction with consistent snapshot; connection default; @@ -228,7 +228,7 @@ ENGINE=InnoDB; INSERT INTO t1 (pk,y) VALUES (1,2022); CREATE TABLE t2(f1 INT NOT NULL, PRIMARY KEY(f1))ENGINE=InnoDB; -SET GLOBAL debug_dbug = '+d,ib_purge_virtual_index_callback'; +SET GLOBAL debug_dbug = 'd,ib_purge_virtual_index_callback'; BEGIN; INSERT INTO t2(f1) VALUES(1); @@ -266,8 +266,8 @@ DROP TABLE t1, t2; --source suite/innodb/include/wait_all_purged.inc --let $datadir= `select @@datadir` -set @saved_dbug= @@global.debug_dbug; -set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; +SET @saved_dbug= @@GLOBAL.debug_dbug; +set global debug_dbug= "d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; create table t1 ( pk serial, vb tinyblob as (b) virtual, b tinyblob, @@ -280,7 +280,7 @@ select * into outfile 'load.data' from t1; load data infile 'load.data' replace into table t1; set debug_sync= "now WAIT_FOR latch_released"; -set global debug_dbug= "-d,ib_purge_virtual_mdev_16222_1"; +set global debug_dbug= @saved_dbug; drop table t1; --remove_file $datadir/test/load.data @@ -338,7 +338,7 @@ SET GLOBAL innodb_debug_sync = "ib_open_after_dict_open " # In 10.2 trx_undo_roll_ptr_is_insert(t_roll_ptr) condition never pass in purge, # so this condition is forced to pass in row_vers_old_has_index_entry SET @saved_dbug= @@GLOBAL.debug_dbug; -set global debug_dbug= "+d,ib_purge_virtual_index_callback"; +set global debug_dbug= "d,ib_purge_virtual_index_callback"; # The purge starts from REPLACE command. To avoid possible race, separate # connection is used. diff --git a/mysql-test/suite/innodb/r/corrupted_during_recovery.result b/mysql-test/suite/innodb/r/corrupted_during_recovery.result index ee4db08fc85..951233ced3c 100644 --- a/mysql-test/suite/innodb/r/corrupted_during_recovery.result +++ b/mysql-test/suite/innodb/r/corrupted_during_recovery.result @@ -17,3 +17,19 @@ CHECK TABLE t2; Table Op Msg_type Msg_text test.t2 check status OK DROP TABLE t1, t2; +CREATE TABLE t1(pk SERIAL) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2),(3); +connect con1,localhost,root,,; +BEGIN; +DELETE FROM t1 WHERE pk=1; +connection default; +SET GLOBAL innodb_flush_log_at_trx_commit=1; +DELETE FROM t1 WHERE pk=3; +# Kill the server +disconnect con1; +# Corrupt the pages +SELECT * FROM t1; +pk +1 +2 +DROP TABLE t1; diff --git a/mysql-test/suite/innodb/r/instant_alter,4k.rdiff b/mysql-test/suite/innodb/r/instant_alter,4k.rdiff index ca93b1d6519..7a6774a0e10 100644 --- a/mysql-test/suite/innodb/r/instant_alter,4k.rdiff +++ b/mysql-test/suite/innodb/r/instant_alter,4k.rdiff @@ -1,6 +1,6 @@ --- instant_alter.result +++ instant_alter,4k.result -@@ -242,7 +242,7 @@ +@@ -244,7 +244,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -9,7 +9,7 @@ connection default; ROLLBACK; connection analyze; -@@ -253,7 +253,7 @@ +@@ -255,7 +255,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -18,7 +18,7 @@ connection default; BEGIN; UPDATE t2 SET d1 = repeat(id, 200); -@@ -265,7 +265,7 @@ +@@ -267,7 +267,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -27,7 +27,7 @@ connection default; ROLLBACK; connection analyze; -@@ -276,11 +276,17 @@ +@@ -278,11 +278,17 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -47,7 +47,7 @@ SELECT * FROM t2; id c1 d1 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf -@@ -324,8 +330,14 @@ +@@ -326,8 +332,14 @@ affected rows: 0 info: Records: 0 Duplicates: 0 Warnings: 0 ALTER TABLE t3 ADD COLUMN b BLOB NOT NULL; @@ -63,7 +63,7 @@ INSERT INTO t3 SET id=4; ERROR HY000: Field 'c2' doesn't have a default value INSERT INTO t3 SET id=4, c2=0, b=0xf09f98b1; -@@ -338,7 +350,9 @@ +@@ -340,7 +352,9 @@ ALTER TABLE t3 CHANGE t phrase TEXT DEFAULT 0xc3a4c3a448, CHANGE b b BLOB NOT NULL DEFAULT 'binary line of business'; affected rows: 4 @@ -74,7 +74,7 @@ INSERT INTO t3 SET id=5, c2=9; Warnings: Note 1265 Data truncated for column 'c7' at row 1 -@@ -352,7 +366,9 @@ +@@ -354,7 +368,9 @@ 5 9 POLYGON((1 1,2 2,3 3,1 1)) 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 03:00:42 1970-01-01 ääH binary line of business ALTER TABLE t3 DROP c3, DROP c7; affected rows: 0 @@ -85,7 +85,7 @@ SELECT * FROM t3; id c2 c4 c5 c6 c8 phrase b 1 1 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 1970-01-01 The quick brown fox jumps over the lazy dog -@@ -380,6 +396,8 @@ +@@ -382,6 +398,8 @@ (id INT PRIMARY KEY, c1 VARCHAR(4000), c2 VARCHAR(4000), c3 VARCHAR(1000), p POINT NOT NULL DEFAULT ST_GeomFromText('POINT(0 0)'), SPATIAL INDEX(p)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; @@ -94,7 +94,7 @@ BEGIN; INSERT INTO big SET id=1, c1=REPEAT('a', 200), c2=REPEAT('b', 200), c3=REPEAT('c', 159); -@@ -398,13 +416,15 @@ +@@ -400,13 +418,15 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -112,7 +112,7 @@ CHECKSUM TABLE big; Table Checksum test.big 1705165209 -@@ -422,7 +442,7 @@ +@@ -424,7 +444,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -121,7 +121,7 @@ connection default; ROLLBACK; CHECKSUM TABLE big; -@@ -436,7 +456,7 @@ +@@ -438,7 +458,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -130,7 +130,7 @@ connection default; InnoDB 0 transactions not purged DROP TABLE t1,t2,t3,t4,big; -@@ -1119,7 +1139,7 @@ +@@ -1162,7 +1182,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -139,7 +139,7 @@ connection default; ROLLBACK; connection analyze; -@@ -1130,7 +1150,7 @@ +@@ -1173,7 +1193,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -148,7 +148,7 @@ connection default; BEGIN; UPDATE t2 SET d1 = repeat(id, 200); -@@ -1142,7 +1162,7 @@ +@@ -1185,7 +1205,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -157,7 +157,7 @@ connection default; ROLLBACK; connection analyze; -@@ -1153,11 +1173,13 @@ +@@ -1196,11 +1216,13 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -173,7 +173,7 @@ SELECT * FROM t2; id c1 d1 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf -@@ -1202,7 +1224,9 @@ +@@ -1245,7 +1267,9 @@ info: Records: 0 Duplicates: 0 Warnings: 0 ALTER TABLE t3 ADD COLUMN b BLOB NOT NULL; affected rows: 0 @@ -184,7 +184,7 @@ INSERT INTO t3 SET id=4; ERROR HY000: Field 'c2' doesn't have a default value INSERT INTO t3 SET id=4, c2=0, b=0xf09f98b1; -@@ -1215,7 +1239,9 @@ +@@ -1258,7 +1282,9 @@ ALTER TABLE t3 CHANGE t phrase TEXT DEFAULT 0xc3a4c3a448, CHANGE b b BLOB NOT NULL DEFAULT 'binary line of business'; affected rows: 4 @@ -195,7 +195,7 @@ INSERT INTO t3 SET id=5, c2=9; Warnings: Note 1265 Data truncated for column 'c7' at row 1 -@@ -1229,7 +1255,9 @@ +@@ -1272,7 +1298,9 @@ 5 9 POLYGON((1 1,2 2,3 3,1 1)) 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 03:00:42 1970-01-01 ääH binary line of business ALTER TABLE t3 DROP c3, DROP c7; affected rows: 0 @@ -206,7 +206,7 @@ SELECT * FROM t3; id c2 c4 c5 c6 c8 phrase b 1 1 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 1970-01-01 The quick brown fox jumps over the lazy dog -@@ -1257,6 +1285,8 @@ +@@ -1300,6 +1328,8 @@ (id INT PRIMARY KEY, c1 VARCHAR(4000), c2 VARCHAR(4000), c3 VARCHAR(1000), p POINT NOT NULL DEFAULT ST_GeomFromText('POINT(0 0)'), SPATIAL INDEX(p)) ENGINE=InnoDB ROW_FORMAT=COMPACT; @@ -215,7 +215,7 @@ BEGIN; INSERT INTO big SET id=1, c1=REPEAT('a', 200), c2=REPEAT('b', 200), c3=REPEAT('c', 159); -@@ -1275,13 +1305,15 @@ +@@ -1318,13 +1348,15 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -233,7 +233,7 @@ CHECKSUM TABLE big; Table Checksum test.big 1705165209 -@@ -1299,7 +1331,7 @@ +@@ -1342,7 +1374,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -242,7 +242,7 @@ connection default; ROLLBACK; CHECKSUM TABLE big; -@@ -1313,7 +1345,7 @@ +@@ -1356,7 +1388,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -251,7 +251,7 @@ connection default; InnoDB 0 transactions not purged DROP TABLE t1,t2,t3,t4,big; -@@ -1996,7 +2028,7 @@ +@@ -2080,7 +2112,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -260,7 +260,7 @@ connection default; ROLLBACK; connection analyze; -@@ -2007,7 +2039,7 @@ +@@ -2091,7 +2123,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -269,7 +269,7 @@ connection default; BEGIN; UPDATE t2 SET d1 = repeat(id, 200); -@@ -2019,7 +2051,7 @@ +@@ -2103,7 +2135,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -278,7 +278,7 @@ connection default; ROLLBACK; connection analyze; -@@ -2030,7 +2062,7 @@ +@@ -2114,7 +2146,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/t2'; clust_index_size @@ -287,7 +287,7 @@ connection default; ALTER TABLE t2 DROP p; affected rows: 0 -@@ -2152,7 +2184,7 @@ +@@ -2236,7 +2268,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -296,7 +296,7 @@ connection default; ALTER TABLE big ADD COLUMN (d1 INT DEFAULT 0, d2 VARCHAR(20) DEFAULT 'abcde', -@@ -2176,7 +2208,7 @@ +@@ -2260,7 +2292,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -305,7 +305,7 @@ connection default; ROLLBACK; CHECKSUM TABLE big; -@@ -2190,7 +2222,7 @@ +@@ -2274,7 +2306,7 @@ SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name = 'test/big'; clust_index_size @@ -314,12 +314,12 @@ connection default; InnoDB 0 transactions not purged DROP TABLE t1,t2,t3,t4,big; -@@ -2691,7 +2723,7 @@ +@@ -2816,7 +2848,7 @@ FROM information_schema.global_status WHERE variable_name = 'innodb_instant_alter_column'; instants --199 -+201 +-205 ++207 SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency; + SET GLOBAL innodb_instant_alter_column_allowed = @saved_allowance; # - # MDEV-18266: Changing an index comment unnecessarily rebuilds index diff --git a/mysql-test/suite/innodb/r/instant_alter.result b/mysql-test/suite/innodb/r/instant_alter.result index 5780849d279..3ce1a2d8ccf 100644 --- a/mysql-test/suite/innodb/r/instant_alter.result +++ b/mysql-test/suite/innodb/r/instant_alter.result @@ -1,6 +1,8 @@ # # MDEV-11369: Instant ADD COLUMN for InnoDB # +SET @saved_allowance = @@GLOBAL.innodb_instant_alter_column_allowed; +SET GLOBAL innodb_instant_alter_column_allowed = DEFAULT; call mtr.add_suppression("Cannot add field `.*` in table `test`.`.*` because after adding it, the row size is"); CREATE TABLE t(a INT UNIQUE)ENGINE=InnoDB ROW_FORMAT=COMPACT; ALTER TABLE t ADD e INT, ROW_FORMAT=COMPRESSED; @@ -526,6 +528,44 @@ ALTER TABLE t1 ADD PRIMARY KEY (b,a); ALTER TABLE t1 ADD va INT AS (a) VIRTUAL; DROP TABLE t1; SET innodb_strict_mode = OFF; +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; +INSERT INTO t1 SET a=42; +SET GLOBAL innodb_instant_alter_column_allowed = never; +ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = never; +ALTER TABLE t1 MODIFY a INT DEFAULT 1, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 MODIFY a INT DEFAULT NULL, ALGORITHM=INSTANT; +ALTER TABLE t1 DROP b, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 ADD d TEXT AFTER a, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_drop_reorder; +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 MODIFY a INT DEFAULT 1, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 ADD d TEXT AFTER a, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 MODIFY a INT DEFAULT NULL, ALGORITHM=INSTANT; +DROP TABLE t1; +SET GLOBAL innodb_instant_alter_column_allowed = DEFAULT; CREATE TABLE t1 (a INT, b INT UNIQUE) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; INSERT INTO t1 (a) VALUES (NULL), (NULL); ALTER TABLE t1 DROP a, ADD COLUMN a INT; @@ -1406,6 +1446,44 @@ ALTER TABLE t1 ADD PRIMARY KEY (b,a); ALTER TABLE t1 ADD va INT AS (a) VIRTUAL; DROP TABLE t1; SET innodb_strict_mode = OFF; +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPACT; +INSERT INTO t1 SET a=42; +SET GLOBAL innodb_instant_alter_column_allowed = never; +ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = never; +ALTER TABLE t1 MODIFY a INT DEFAULT 1, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 MODIFY a INT DEFAULT NULL, ALGORITHM=INSTANT; +ALTER TABLE t1 DROP b, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 ADD d TEXT AFTER a, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_drop_reorder; +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 MODIFY a INT DEFAULT 1, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 ADD d TEXT AFTER a, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 MODIFY a INT DEFAULT NULL, ALGORITHM=INSTANT; +DROP TABLE t1; +SET GLOBAL innodb_instant_alter_column_allowed = DEFAULT; CREATE TABLE t1 (a INT, b INT UNIQUE) ENGINE=InnoDB ROW_FORMAT=COMPACT; INSERT INTO t1 (a) VALUES (NULL), (NULL); ALTER TABLE t1 DROP a, ADD COLUMN a INT; @@ -2286,6 +2364,44 @@ ALTER TABLE t1 ADD PRIMARY KEY (b,a); ALTER TABLE t1 ADD va INT AS (a) VIRTUAL; DROP TABLE t1; SET innodb_strict_mode = OFF; +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +INSERT INTO t1 SET a=42; +SET GLOBAL innodb_instant_alter_column_allowed = never; +ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = never; +ALTER TABLE t1 MODIFY a INT DEFAULT 1, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 MODIFY a INT DEFAULT NULL, ALGORITHM=INSTANT; +ALTER TABLE t1 DROP b, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_alter_column_allowed=never. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 ADD d TEXT AFTER a, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +SET GLOBAL innodb_instant_alter_column_allowed = add_drop_reorder; +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 MODIFY a INT DEFAULT 1, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 ADD d TEXT AFTER a, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0, ALGORITHM=INSTANT; +ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: innodb_instant_atler_column_allowed=add_last. Try ALGORITHM=INPLACE +ALTER TABLE t1 MODIFY a INT DEFAULT 0; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 MODIFY a INT DEFAULT NULL, ALGORITHM=INSTANT; +DROP TABLE t1; +SET GLOBAL innodb_instant_alter_column_allowed = DEFAULT; CREATE TABLE t1 (a INT, b INT UNIQUE) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; INSERT INTO t1 (a) VALUES (NULL), (NULL); ALTER TABLE t1 DROP a, ADD COLUMN a INT; @@ -2700,8 +2816,9 @@ SELECT variable_value-@old_instant instants FROM information_schema.global_status WHERE variable_name = 'innodb_instant_alter_column'; instants -199 +205 SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency; +SET GLOBAL innodb_instant_alter_column_allowed = @saved_allowance; # # MDEV-18266: Changing an index comment unnecessarily rebuilds index # diff --git a/mysql-test/suite/innodb/t/corrupted_during_recovery.test b/mysql-test/suite/innodb/t/corrupted_during_recovery.test index 155a09845a0..5f1de1bedf9 100644 --- a/mysql-test/suite/innodb/t/corrupted_during_recovery.test +++ b/mysql-test/suite/innodb/t/corrupted_during_recovery.test @@ -63,3 +63,31 @@ SELECT * FROM t2; CHECK TABLE t2; DROP TABLE t1, t2; + +# MDEV-21572 buf_page_get_gen() should apply buffered page +# initialized redo log during recovery +--source ../include/no_checkpoint_start.inc +CREATE TABLE t1(pk SERIAL) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2),(3); +connect (con1,localhost,root,,); +BEGIN; +DELETE FROM t1 WHERE pk=1; +connection default; +SET GLOBAL innodb_flush_log_at_trx_commit=1; +DELETE FROM t1 WHERE pk=3; +--let CLEANUP_IF_CHECKPOINT=DROP TABLE t1; +--source ../include/no_checkpoint_end.inc +disconnect con1; + +--echo # Corrupt the pages +perl; +my $file = "$ENV{MYSQLD_DATADIR}/test/t1.ibd"; +open(FILE, "+<$file") || die "Unable to open $file"; +binmode FILE; +seek (FILE, $ENV{INNODB_PAGE_SIZE} * 3, SEEK_SET) or die "seek"; +print FILE "junk"; +close FILE or die "close"; +EOF +--source include/start_mysqld.inc +SELECT * FROM t1; +DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/instant_alter.test b/mysql-test/suite/innodb/t/instant_alter.test index 8473984afba..8bbeb7fe94d 100644 --- a/mysql-test/suite/innodb/t/instant_alter.test +++ b/mysql-test/suite/innodb/t/instant_alter.test @@ -4,6 +4,9 @@ --echo # MDEV-11369: Instant ADD COLUMN for InnoDB --echo # +SET @saved_allowance = @@GLOBAL.innodb_instant_alter_column_allowed; +SET GLOBAL innodb_instant_alter_column_allowed = DEFAULT; + call mtr.add_suppression("Cannot add field `.*` in table `test`.`.*` because after adding it, the row size is"); let $format= `SELECT CASE WHEN @@GLOBAL.innodb_page_size>16384 @@ -418,6 +421,46 @@ ALTER TABLE t1 ADD va INT AS (a) VIRTUAL; DROP TABLE t1; SET innodb_strict_mode = OFF; +# MDEV-20950 innodb_instant_alter_column_allowed +eval CREATE TABLE t1 (a INT PRIMARY KEY) $engine; +INSERT INTO t1 SET a=42; +SET GLOBAL innodb_instant_alter_column_allowed = never; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = never; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 MODIFY a INT DEFAULT 1, ALGORITHM=INSTANT; +--enable_info +ALTER TABLE t1 MODIFY a INT DEFAULT 0; +--disable_info +ALTER TABLE t1 MODIFY a INT DEFAULT NULL, ALGORITHM=INSTANT; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 DROP b, ALGORITHM=INSTANT; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 ADD d TEXT AFTER a, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = add_drop_reorder; +ALTER TABLE t1 MODIFY b TEXT FIRST, ALGORITHM=INSTANT; +SET GLOBAL innodb_instant_alter_column_allowed = add_last; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 MODIFY a INT DEFAULT 1, ALGORITHM=INSTANT; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 ADD d TEXT AFTER a, ALGORITHM=INSTANT; +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1 MODIFY a INT DEFAULT 0, ALGORITHM=INSTANT; +--enable_info +ALTER TABLE t1 MODIFY a INT DEFAULT 0; +--disable_info +ALTER TABLE t1 MODIFY a INT DEFAULT NULL, ALGORITHM=INSTANT; +DROP TABLE t1; +SET GLOBAL innodb_instant_alter_column_allowed = DEFAULT; + # MDEV-15562 Instant DROP/ADD/reorder columns eval CREATE TABLE t1 (a INT, b INT UNIQUE) $engine; @@ -838,6 +881,7 @@ SELECT variable_value-@old_instant instants FROM information_schema.global_status WHERE variable_name = 'innodb_instant_alter_column'; SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency; +SET GLOBAL innodb_instant_alter_column_allowed = @saved_allowance; --echo # --echo # MDEV-18266: Changing an index comment unnecessarily rebuilds index diff --git a/mysql-test/suite/parts/r/partition_alter_instant.result b/mysql-test/suite/parts/r/partition_alter_instant.result new file mode 100644 index 00000000000..e5ef57db992 --- /dev/null +++ b/mysql-test/suite/parts/r/partition_alter_instant.result @@ -0,0 +1,34 @@ +CREATE TABLE t1 ( +id INT NOT NULL, +name VARCHAR(30))ENGINE=InnoDB ROW_FORMAT=COMPACT CHARACTER SET=latin1 +PARTITION BY RANGE (id) ( +PARTITION p0 VALUES LESS THAN (50), +PARTITION p1 VALUES LESS THAN (MAXVALUE) +); +INSERT INTO t1(id, name) VALUES(16, 'Me'), (337, 'ROFL'); +# Add and drop 31 Instant columns +CREATE TABLE t2 LIKE t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `id` int(11) NOT NULL, + `name` varchar(30) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT + PARTITION BY RANGE (`id`) +(PARTITION `p0` VALUES LESS THAN (50) ENGINE = InnoDB, + PARTITION `p1` VALUES LESS THAN MAXVALUE ENGINE = InnoDB) +ALTER TABLE t2 REMOVE PARTITIONING; +ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `id` int(11) NOT NULL, + `name` varchar(30) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT +SET ALTER_ALGORITHM=INSTANT; +ALTER TABLE t1 ADD COLUMN col1 VARCHAR(255) NOT NULL DEFAULT repeat('a', 255); +ERROR 0A000: ALGORITHM=INSTANT is not supported for this operation. Try ALGORITHM=INPLACE +SET ALTER_ALGORITHM=INPLACE; +ALTER TABLE t1 ADD COLUMN col1 VARCHAR(255) NOT NULL DEFAULT repeat('a', 255); +DROP TABLE t1, t2; +SET ALTER_ALGORITHM=DEFAULT; diff --git a/mysql-test/suite/parts/t/partition_alter_instant.test b/mysql-test/suite/parts/t/partition_alter_instant.test new file mode 100644 index 00000000000..3d798791517 --- /dev/null +++ b/mysql-test/suite/parts/t/partition_alter_instant.test @@ -0,0 +1,43 @@ +--source include/have_partition.inc +--source include/have_innodb.inc +--source include/have_innodb_16k.inc + +# MDEV-21832 FORCE all partition to rebuild if any one of the +# partition does rebuild +CREATE TABLE t1 ( + id INT NOT NULL, + name VARCHAR(30))ENGINE=InnoDB ROW_FORMAT=COMPACT CHARACTER SET=latin1 + PARTITION BY RANGE (id) ( + PARTITION p0 VALUES LESS THAN (50), + PARTITION p1 VALUES LESS THAN (MAXVALUE) +); + +INSERT INTO t1(id, name) VALUES(16, 'Me'), (337, 'ROFL'); + +--echo # Add and drop 31 Instant columns +--disable_query_log +let $i = 1; +while ($i < 32) { +--eval ALTER TABLE t1 ADD COLUMN col$i VARCHAR(255) NOT NULL DEFAULT repeat('a', 255); +inc $i; +} + +let $i = 31; +while ($i > 0) { +--eval ALTER TABLE t1 DROP COLUMN col$i +dec $i; +} +--enable_query_log + +CREATE TABLE t2 LIKE t1; +SHOW CREATE TABLE t2; +ALTER TABLE t2 REMOVE PARTITIONING; +ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; +SHOW CREATE TABLE t2; +SET ALTER_ALGORITHM=INSTANT; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +ALTER TABLE t1 ADD COLUMN col1 VARCHAR(255) NOT NULL DEFAULT repeat('a', 255); +SET ALTER_ALGORITHM=INPLACE; +ALTER TABLE t1 ADD COLUMN col1 VARCHAR(255) NOT NULL DEFAULT repeat('a', 255); +DROP TABLE t1, t2; +SET ALTER_ALGORITHM=DEFAULT; diff --git a/mysql-test/suite/rpl/disabled.def b/mysql-test/suite/rpl/disabled.def index 77b01bd8d1d..ef1630f87eb 100644 --- a/mysql-test/suite/rpl/disabled.def +++ b/mysql-test/suite/rpl/disabled.def @@ -11,7 +11,7 @@ ############################################################################## rpl_spec_variables : BUG#11755836 2009-10-27 jasonh rpl_spec_variables fails on PB2 hpux -rpl_get_master_version_and_clock : Bug#11766137 Jan 05 2011 joro Valgrind warnings rpl_get_master_version_and_clock +#rpl_get_master_version_and_clock : Bug#11766137 Jan 05 2011 joro Valgrind warnings rpl_get_master_version_and_clock rpl_partition_archive : MDEV-5077 2013-09-27 svoj Cannot exchange partition with archive table rpl_row_binlog_max_cache_size : MDEV-11092 rpl_row_index_choice : MDEV-11666 diff --git a/mysql-test/suite/rpl/include/rpl_binlog_errors.inc b/mysql-test/suite/rpl/include/rpl_binlog_errors.inc index 72f8bc053e3..7dd09ad1a24 100644 --- a/mysql-test/suite/rpl/include/rpl_binlog_errors.inc +++ b/mysql-test/suite/rpl/include/rpl_binlog_errors.inc @@ -84,14 +84,14 @@ FLUSH LOGS; ### (should show just one binlog) RESET MASTER; -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; -- error ER_NO_UNIQUE_LOGFILE FLUSH LOGS; -- echo # assert: must show one binlog -- source include/show_binary_logs.inc ### ACTION: clean up and move to next test -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; RESET MASTER; -- echo ###################### TEST #3 @@ -116,7 +116,7 @@ RESET MASTER; -- source include/show_binary_logs.inc # clean up the table and the binlog to be used in next part of test -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; @@ -127,7 +127,7 @@ RESET MASTER; ### changes performed despite the fact that it reported an ### error. -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR -- error ER_NO_UNIQUE_LOGFILE -- eval LOAD DATA INFILE '$load_file' INTO TABLE t2 @@ -137,7 +137,7 @@ SET GLOBAL debug_dbug="+d,error_unique_log_filename"; SELECT count(*) FROM t2; # clean up the table and the binlog to be used in next part of test -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; @@ -146,7 +146,7 @@ RESET MASTER; ### ASSERTION: load the small file into a transactional table and ### check that it succeeds -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR -- eval LOAD DATA INFILE '$load_file2' INTO TABLE t2 @@ -155,7 +155,7 @@ SET GLOBAL debug_dbug="+d,error_unique_log_filename"; SELECT count(*) FROM t2; # clean up the table and the binlog to be used in next part of test -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; @@ -166,7 +166,7 @@ RESET MASTER; ### fails we get the error. Transaction is not rolledback ### because rotation happens after the commit. -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; SET AUTOCOMMIT=0; INSERT INTO t2 VALUES ('muse'); -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR @@ -181,7 +181,7 @@ SELECT count(*) FROM t2; ### ACTION: clean up and move to the next test SET AUTOCOMMIT= 1; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; @@ -191,7 +191,7 @@ RESET MASTER; ### fails then an error is reported and an incident event ### is written to the current binary log. -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; # Disable logging Annotate_rows events to preserve events count. let $binlog_annotate_row_events_saved= `SELECT @@binlog_annotate_row_events`; @@ -206,7 +206,7 @@ SELECT count(*) FROM t4; SELECT count(*) FROM t4; -- echo ### check that the incident event is written to the current log -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; if (!$binlog_limit) { -- let $binlog_limit= 4,1 @@ -227,7 +227,7 @@ RESET MASTER; ### ASSERTION: check that statements end up in error but they succeed ### on changing the data. -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; -- echo # must show 0 entries SELECT count(*) FROM t4; SELECT count(*) FROM t2; @@ -258,13 +258,13 @@ SELECT count(*) FROM t4; SELECT count(*) FROM t2; # remove fault injection -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; -- echo ###################### TEST #9 ### ASSERTION: check that if we disable binlogging, then statements ### succeed. -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; SET SQL_LOG_BIN=0; INSERT INTO t2 VALUES ('aaa'), ('bbb'), ('ccc'), ('ddd'); INSERT INTO t4 VALUES ('eee'), ('fff'), ('ggg'), ('hhh'); @@ -277,7 +277,7 @@ DELETE FROM t4; SELECT count(*) FROM t2; SELECT count(*) FROM t4; SET SQL_LOG_BIN=1; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; -- echo ###################### TEST #10 @@ -292,11 +292,11 @@ RESET MASTER; SHOW WARNINGS; # +d,fault_injection_registering_index => injects fault on MYSQL_BIN_LOG::open -SET GLOBAL debug_dbug="+d,fault_injection_registering_index"; +SET @@global.debug_dbug="d,fault_injection_registering_index"; -- replace_regex /\.[\\\/]master/master/ -- error ER_CANT_OPEN_FILE FLUSH LOGS; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; -- error ER_NO_BINARY_LOGGING SHOW BINARY LOGS; @@ -321,11 +321,11 @@ flush tables; --source include/rpl_restart_server.inc # +d,fault_injection_openning_index => injects fault on MYSQL_BIN_LOG::open_index_file -SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; +SET @@global.debug_dbug="d,fault_injection_openning_index"; -- replace_regex /\.[\\\/]master/master/ -- error ER_CANT_OPEN_FILE FLUSH LOGS; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; -- error ER_FLUSH_MASTER_BINLOG_CLOSED RESET MASTER; @@ -350,10 +350,10 @@ flush tables; ### file. # +d,fault_injection_new_file_rotate_event => injects fault on MYSQL_BIN_LOG::MYSQL_BIN_LOG::new_file_impl -SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; +SET @@global.debug_dbug="d,fault_injection_new_file_rotate_event"; -- error ER_ERROR_ON_WRITE FLUSH LOGS; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; -- error ER_FLUSH_MASTER_BINLOG_CLOSED RESET MASTER; diff --git a/mysql-test/suite/rpl/include/rpl_corruption.inc b/mysql-test/suite/rpl/include/rpl_corruption.inc index 4106bb45eef..c7a913af9d7 100644 --- a/mysql-test/suite/rpl/include/rpl_corruption.inc +++ b/mysql-test/suite/rpl/include/rpl_corruption.inc @@ -73,8 +73,8 @@ while ($i) { # Emulate corruption in binlog file when SHOW BINLOG EVENTS is executing --echo # 2. Corruption in master binlog and SHOW BINLOG EVENTS -set @saved_dbug = @@global.debug_dbug; -SET GLOBAL debug_dbug="+d,corrupt_read_log_event_char"; +SET @saved_dbug = @@global.debug_dbug; +SET @@global.debug_dbug="d,corrupt_read_log_event_char"; --echo SHOW BINLOG EVENTS; --disable_query_log send_eval SHOW BINLOG EVENTS FROM $pos; @@ -82,7 +82,7 @@ send_eval SHOW BINLOG EVENTS FROM $pos; --error ER_ERROR_WHEN_EXECUTING_COMMAND reap; -SET GLOBAL debug_dbug="-d,corrupt_read_log_event_char"; +SET @@global.debug_dbug=@saved_dbug; # Emulate corruption on master with crc checking on master --echo # 3. Master read a corrupted event from binlog and send the error to slave @@ -107,20 +107,20 @@ let $wait_condition= SELECT COUNT(*)=0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE command = 'Binlog Dump'; --source include/wait_condition.inc -SET GLOBAL debug_dbug="+d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug="d,corrupt_read_log_event2_set"; --connection slave START SLAVE IO_THREAD; let $slave_io_errno= 1236; --let $slave_timeout= 10 --source include/wait_for_slave_io_error.inc --connection master -SET GLOBAL debug_dbug="-d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug=@saved_dbug; # Emulate corruption on master without crc checking on master --echo # 4. Master read a corrupted event from binlog and send it to slave --connection master SET GLOBAL master_verify_checksum=0; -SET GLOBAL debug_dbug="+d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug="d,corrupt_read_log_event2_set"; --connection slave START SLAVE IO_THREAD; # When the checksum error is detected, the slave sets error code 1743 @@ -130,31 +130,29 @@ START SLAVE IO_THREAD; let $slave_io_errno= 1595,1743; # ER_SLAVE_RELAY_LOG_WRITE_FAILURE, ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE --source include/wait_for_slave_io_error.inc --connection master -SET GLOBAL debug_dbug="-d,corrupt_read_log_event2_set"; -SET GLOBAL debug_dbug=@saved_dbug; +SET @@global.debug_dbug=@saved_dbug; SET GLOBAL master_verify_checksum=1; # Emulate corruption in network --echo # 5. Slave. Corruption in network --connection slave SET @saved_dbug_slave = @@GLOBAL.debug_dbug; -SET GLOBAL debug_dbug="+d,corrupt_queue_event"; +SET @@global.debug_dbug="d,corrupt_queue_event"; START SLAVE IO_THREAD; let $slave_io_errno= 1595,1743; # ER_SLAVE_RELAY_LOG_WRITE_FAILURE, ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE --source include/wait_for_slave_io_error.inc -SET GLOBAL debug_dbug="-d,corrupt_queue_event"; +SET @@global.debug_dbug=@saved_dbug_slave; # Emulate corruption in relay log --echo # 6. Slave. Corruption in relay log -SET GLOBAL debug_dbug="+d,corrupt_read_log_event_char"; +SET @@global.debug_dbug="d,corrupt_read_log_event_char"; START SLAVE SQL_THREAD; let $slave_sql_errno= 1593; --source include/wait_for_slave_sql_error.inc -SET GLOBAL debug_dbug="-d,corrupt_read_log_event_char"; -SET GLOBAL debug_dbug=@saved_dbug_slave; +SET @@global.debug_dbug=@saved_dbug_slave; # Start normal replication and compare same table on master # and slave diff --git a/mysql-test/suite/rpl/include/rpl_get_master_version_and_clock.test b/mysql-test/suite/rpl/include/rpl_get_master_version_and_clock.test index eb0e5e21d62..181759283e2 100644 --- a/mysql-test/suite/rpl/include/rpl_get_master_version_and_clock.test +++ b/mysql-test/suite/rpl/include/rpl_get_master_version_and_clock.test @@ -41,8 +41,8 @@ if (!$debug_sync_action) # Restart slave --source include/stop_slave.inc - -eval SET @@global.debug_dbug= "+d,$dbug_sync_point"; +SET @old_dbug = @@global.debug_dbug; +eval SET @@global.debug_dbug= "d,$dbug_sync_point"; --source include/start_slave.inc --echo slave is going to hang in get_master_version_and_clock @@ -70,7 +70,7 @@ source include/wait_for_slave_io_error.inc; # now to avoid restarting IO-thread to re-enter it. # There will be a new IO thread forked out with its @@session.debug # unset. -eval set @@global.debug_dbug= "-d,$dbug_sync_point"; +set @@global.debug_dbug= @old_dbug; --let $rpl_server_number= 1 --source include/rpl_start_server.inc diff --git a/mysql-test/suite/rpl/include/rpl_stop_middle_group.test b/mysql-test/suite/rpl/include/rpl_stop_middle_group.test index 5c88c14d9b5..ac01fb04d16 100644 --- a/mysql-test/suite/rpl/include/rpl_stop_middle_group.test +++ b/mysql-test/suite/rpl/include/rpl_stop_middle_group.test @@ -14,7 +14,7 @@ create table ti (a int auto_increment primary key) engine=innodb; sync_slave_with_master; SET @saved_dbug = @@GLOBAL.debug_dbug; -set @@global.debug_dbug="+d,stop_slave_middle_group"; +set @@global.debug_dbug="d,stop_slave_middle_group"; connection master; @@ -44,7 +44,7 @@ eval SELECT "NO$error" AS Last_SQL_Error, @check as `true`; select count(*) as one from tm; select count(*) as one from ti; -set @@global.debug_dbug="-d"; +set @@global.debug_dbug=@saved_dbug; # # bug#45940 issues around rli->last_event_start_time @@ -68,8 +68,7 @@ truncate table ti; #connection slave; sync_slave_with_master; -set @@global.debug_dbug="+d,stop_slave_middle_group"; -set @@global.debug_dbug="+d,incomplete_group_in_relay_log"; +set @@global.debug_dbug="d,stop_slave_middle_group,incomplete_group_in_relay_log"; connection master; @@ -97,7 +96,7 @@ eval SELECT "$error" AS Last_SQL_Error, @check as `true`; select count(*) as one from tm; select count(*) as zero from ti; -set @@global.debug_dbug="-d"; +set @@global.debug_dbug=@saved_dbug; # # The mixed multi-table update @@ -110,8 +109,7 @@ connection master; #connection slave; sync_slave_with_master; -set @@global.debug_dbug="+d,stop_slave_middle_group"; -set @@global.debug_dbug="+d,incomplete_group_in_relay_log"; +set @@global.debug_dbug="d,stop_slave_middle_group,incomplete_group_in_relay_log"; connection master; update tm as t1, ti as t2 set t1.a=t1.a * 2, t2.a=t2.a * 2; diff --git a/mysql-test/suite/rpl/r/circular_serverid0.result b/mysql-test/suite/rpl/r/circular_serverid0.result index 928a0a48888..19c800cf01b 100644 --- a/mysql-test/suite/rpl/r/circular_serverid0.result +++ b/mysql-test/suite/rpl/r/circular_serverid0.result @@ -3,8 +3,8 @@ include/rpl_connect.inc [creating M4] include/rpl_connect.inc [creating M2] connection M2; STOP SLAVE; -SET @old_debug= @@global.debug; -SET GLOBAL debug_dbug= "+d,dbug.rows_events_to_delay_relay_logging"; +SET @old_debug= @@global.debug_dbug; +SET GLOBAL debug_dbug= "d,dbug.rows_events_to_delay_relay_logging"; START SLAVE IO_THREAD; include/wait_for_slave_io_to_start.inc connection M2; diff --git a/mysql-test/suite/rpl/r/rpl_binlog_errors.result b/mysql-test/suite/rpl/r/rpl_binlog_errors.result index eb58dd06997..c8a10577517 100644 --- a/mysql-test/suite/rpl/r/rpl_binlog_errors.result +++ b/mysql-test/suite/rpl/r/rpl_binlog_errors.result @@ -22,7 +22,7 @@ master-bin.000001 # master-bin.000002 # ###################### TEST #2 RESET MASTER; -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; FLUSH LOGS; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) @@ -30,7 +30,7 @@ ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) show binary logs; Log_name File_size master-bin.000001 # -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; RESET MASTER; ###################### TEST #3 CREATE TABLE t1 (a INT); @@ -44,11 +44,11 @@ show binary logs; Log_name File_size master-bin.000001 # master-bin.000002 # -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; ###################### TEST #4 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) @@ -56,21 +56,21 @@ ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) SELECT count(*) FROM t2; count(*) 1 -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; ###################### TEST #5 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166-2.data' INTO TABLE t2; # assert: must show one entry SELECT count(*) FROM t2; count(*) 1 -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; ###################### TEST #6 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; SET AUTOCOMMIT=0; INSERT INTO t2 VALUES ('muse'); LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; @@ -83,11 +83,11 @@ SELECT count(*) FROM t2; count(*) 3 SET AUTOCOMMIT= 1; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; DELETE FROM t2; RESET MASTER; ###################### TEST #7 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; SET @@binlog_annotate_row_events= 0; SELECT count(*) FROM t4; count(*) @@ -100,14 +100,14 @@ SELECT count(*) FROM t4; count(*) 1 ### check that the incident event is written to the current log -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Incident # # #1 (LOST_EVENTS) DELETE FROM t4; RESET MASTER; ###################### TEST #8 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; # must show 0 entries SELECT count(*) FROM t4; count(*) @@ -147,9 +147,9 @@ count(*) SELECT count(*) FROM t2; count(*) 0 -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; ###################### TEST #9 -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; SET SQL_LOG_BIN=0; INSERT INTO t2 VALUES ('aaa'), ('bbb'), ('ccc'), ('ddd'); INSERT INTO t4 VALUES ('eee'), ('fff'), ('ggg'), ('hhh'); @@ -170,17 +170,17 @@ SELECT count(*) FROM t4; count(*) 0 SET SQL_LOG_BIN=1; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; ###################### TEST #10 call mtr.add_suppression("MYSQL_BIN_LOG::open failed to sync the index file."); call mtr.add_suppression("Could not use .*"); RESET MASTER; SHOW WARNINGS; Level Code Message -SET GLOBAL debug_dbug="+d,fault_injection_registering_index"; +SET @@global.debug_dbug="d,fault_injection_registering_index"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin.000002' (errno: 1 "Operation not permitted") -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; SHOW BINARY LOGS; ERROR HY000: You are not using binary logging CREATE TABLE t5 (a INT); @@ -192,10 +192,10 @@ DROP TABLE t5; flush tables; ###################### TEST #11 include/rpl_restart_server.inc [server_number=1] -SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; +SET @@global.debug_dbug="d,fault_injection_openning_index"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin.index' (errno: 1 "Operation not permitted") -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; RESET MASTER; ERROR HY000: Binlog closed, cannot RESET MASTER CREATE TABLE t5 (a INT); @@ -207,10 +207,10 @@ DROP TABLE t5; flush tables; include/rpl_restart_server.inc [server_number=1] ###################### TEST #12 -SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; +SET @@global.debug_dbug="d,fault_injection_new_file_rotate_event"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin' (errno: 2 "No such file or directory") -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@old_debug; RESET MASTER; ERROR HY000: Binlog closed, cannot RESET MASTER CREATE TABLE t5 (a INT); @@ -237,44 +237,40 @@ call mtr.add_suppression("Could not use .*"); call mtr.add_suppression("MYSQL_BIN_LOG::open failed to sync the index file."); call mtr.add_suppression("Can't generate a unique log-filename .*"); ###################### TEST #13 -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@global.debug_dbug="d,error_unique_log_filename"; START SLAVE io_thread; include/wait_for_slave_io_error.inc [errno=1595] Last_IO_Error = 'Relay log write failure: could not queue event from master' -SET GLOBAL debug_dbug="-d,error_unique_log_filename"; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; include/rpl_restart_server.inc [server_number=2] ###################### TEST #14 -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; +SET @@global.debug_dbug="d,fault_injection_new_file_rotate_event"; START SLAVE io_thread; include/wait_for_slave_io_error.inc [errno=1595] Last_IO_Error = 'Relay log write failure: could not queue event from master' -SET GLOBAL debug_dbug="-d,fault_injection_new_file_rotate_event"; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; include/rpl_restart_server.inc [server_number=2] ###################### TEST #15 -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,fault_injection_registering_index"; +SET @@global.debug_dbug="d,fault_injection_registering_index"; START SLAVE io_thread; include/wait_for_slave_io_error.inc [errno=1595] Last_IO_Error = 'Relay log write failure: could not queue event from master' -SET GLOBAL debug_dbug="-d,fault_injection_registering_index"; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; include/rpl_restart_server.inc [server_number=2] ###################### TEST #16 -SET @old_debug=@@global.debug; +SET @saved_debug=@@global.debug_dbug; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; +SET @@global.debug_dbug="d,fault_injection_openning_index"; START SLAVE io_thread; include/wait_for_slave_io_error.inc [errno=1595] Last_IO_Error = 'Relay log write failure: could not queue event from master' -SET GLOBAL debug_dbug="-d,fault_injection_openning_index"; -SET GLOBAL debug_dbug=@old_debug; +SET @@global.debug_dbug=@saved_debug; include/rpl_restart_server.inc [server_number=2] include/stop_slave_sql.inc Warnings: diff --git a/mysql-test/suite/rpl/r/rpl_corruption.result b/mysql-test/suite/rpl/r/rpl_corruption.result index f32b7c58ad1..73bb373d6be 100644 --- a/mysql-test/suite/rpl/r/rpl_corruption.result +++ b/mysql-test/suite/rpl/r/rpl_corruption.result @@ -13,42 +13,40 @@ connection master; CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10), c VARCHAR(100)); include/stop_slave.inc # 2. Corruption in master binlog and SHOW BINLOG EVENTS -set @saved_dbug = @@global.debug_dbug; -SET GLOBAL debug_dbug="+d,corrupt_read_log_event_char"; +SET @saved_dbug = @@global.debug_dbug; +SET @@global.debug_dbug="d,corrupt_read_log_event_char"; SHOW BINLOG EVENTS; ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error -SET GLOBAL debug_dbug="-d,corrupt_read_log_event_char"; +SET @@global.debug_dbug=@saved_dbug; # 3. Master read a corrupted event from binlog and send the error to slave -SET GLOBAL debug_dbug="+d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug="d,corrupt_read_log_event2_set"; connection slave; START SLAVE IO_THREAD; include/wait_for_slave_io_error.inc [errno=1236] connection master; -SET GLOBAL debug_dbug="-d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug=@saved_dbug; # 4. Master read a corrupted event from binlog and send it to slave connection master; SET GLOBAL master_verify_checksum=0; -SET GLOBAL debug_dbug="+d,corrupt_read_log_event2_set"; +SET @@global.debug_dbug="d,corrupt_read_log_event2_set"; connection slave; START SLAVE IO_THREAD; include/wait_for_slave_io_error.inc [errno=1595,1743] connection master; -SET GLOBAL debug_dbug="-d,corrupt_read_log_event2_set"; -SET GLOBAL debug_dbug=@saved_dbug; +SET @@global.debug_dbug=@saved_dbug; SET GLOBAL master_verify_checksum=1; # 5. Slave. Corruption in network connection slave; SET @saved_dbug_slave = @@GLOBAL.debug_dbug; -SET GLOBAL debug_dbug="+d,corrupt_queue_event"; +SET @@global.debug_dbug="d,corrupt_queue_event"; START SLAVE IO_THREAD; include/wait_for_slave_io_error.inc [errno=1595,1743] -SET GLOBAL debug_dbug="-d,corrupt_queue_event"; +SET @@global.debug_dbug=@saved_dbug_slave; # 6. Slave. Corruption in relay log -SET GLOBAL debug_dbug="+d,corrupt_read_log_event_char"; +SET @@global.debug_dbug="d,corrupt_read_log_event_char"; START SLAVE SQL_THREAD; include/wait_for_slave_sql_error.inc [errno=1593] -SET GLOBAL debug_dbug="-d,corrupt_read_log_event_char"; -SET GLOBAL debug_dbug=@saved_dbug_slave; +SET @@global.debug_dbug=@saved_dbug_slave; # 7. Seek diff for tables on master and slave connection slave; include/start_slave.inc diff --git a/mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result b/mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result index b8415977154..feef82a57fc 100644 --- a/mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result +++ b/mysql-test/suite/rpl/r/rpl_domain_id_filter_io_crash.result @@ -27,7 +27,7 @@ include/start_slave.inc DO_DOMAIN_IDS (AFTER) : IGNORE_DOMAIN_IDS (AFTER) : SET @saved_dbug = @@GLOBAL.debug_dbug; -SET @@global.debug_dbug="+d,kill_slave_io_before_commit"; +SET @@global.debug_dbug="d,kill_slave_io_before_commit"; connection master; START TRANSACTION; INSERT INTO t1 VALUES(2); @@ -43,7 +43,7 @@ include/wait_for_slave_io_error.inc [errno=1595] SELECT * FROM t1; i 1 -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; START SLAVE io_thread; include/wait_for_slave_io_to_start.inc SELECT * FROM t1; @@ -61,7 +61,7 @@ CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos; include/start_slave.inc DO_DOMAIN_IDS (AFTER) : IGNORE_DOMAIN_IDS (AFTER) : 1 -SET @@global.debug_dbug="+d,kill_slave_io_before_commit"; +SET @@global.debug_dbug="d,kill_slave_io_before_commit"; connection master; START TRANSACTION; INSERT INTO t1 VALUES(4); @@ -81,7 +81,7 @@ i 1 2 3 -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; START SLAVE io_thread; include/wait_for_slave_io_to_start.inc SELECT * FROM t1; @@ -99,7 +99,7 @@ CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos; include/start_slave.inc DO_DOMAIN_IDS (AFTER) : IGNORE_DOMAIN_IDS (AFTER) : -SET @@global.debug_dbug="+d,kill_slave_io_before_commit"; +SET @@global.debug_dbug="d,kill_slave_io_before_commit"; connection master; START TRANSACTION; INSERT INTO t1 VALUES(6); @@ -134,7 +134,7 @@ i 1 2 3 -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; include/stop_slave.inc DO_DOMAIN_IDS (BEFORE) : IGNORE_DOMAIN_IDS (BEFORE) : @@ -159,7 +159,7 @@ CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos; include/start_slave.inc DO_DOMAIN_IDS (AFTER) : IGNORE_DOMAIN_IDS (AFTER) : 1 -SET @@global.debug_dbug="+d,kill_slave_io_before_commit"; +SET @@global.debug_dbug="d,kill_slave_io_before_commit"; connection master; SET @@session.gtid_domain_id= 1; START TRANSACTION; @@ -203,7 +203,7 @@ i 3 10 11 -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; include/stop_slave.inc DO_DOMAIN_IDS (BEFORE) : IGNORE_DOMAIN_IDS (BEFORE) : 1 @@ -232,7 +232,7 @@ CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos; include/start_slave.inc DO_DOMAIN_IDS (AFTER) : IGNORE_DOMAIN_IDS (AFTER) : 1 -SET @@global.debug_dbug="+d,kill_slave_io_after_2_events"; +SET @@global.debug_dbug="d,kill_slave_io_after_2_events"; connection master; SET @@session.gtid_domain_id= 1; START TRANSACTION; @@ -286,7 +286,7 @@ i 15 16 17 -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; include/stop_slave.inc DO_DOMAIN_IDS (BEFORE) : IGNORE_DOMAIN_IDS (BEFORE) : 1 @@ -319,7 +319,7 @@ CHANGE MASTER TO IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=slave_pos; include/start_slave.inc DO_DOMAIN_IDS (AFTER) : IGNORE_DOMAIN_IDS (AFTER) : -SET @@global.debug_dbug="+d,kill_slave_io_after_2_events"; +SET @@global.debug_dbug="d,kill_slave_io_after_2_events"; connection master; SET @@session.gtid_domain_id= 1; START TRANSACTION; @@ -383,7 +383,7 @@ i 21 22 23 -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; include/stop_slave.inc DO_DOMAIN_IDS (BEFORE) : IGNORE_DOMAIN_IDS (BEFORE) : diff --git a/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result b/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result index e7f4e566566..deea7caa12a 100644 --- a/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result +++ b/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result @@ -1,33 +1,42 @@ include/master-slave.inc [connection master] +connection slave; call mtr.add_suppression("Slave I/O: Master command COM_REGISTER_SLAVE failed: .*"); call mtr.add_suppression("Slave I/O: .* failed with error: Lost connection to MySQL server at 'reading initial communication packet'"); call mtr.add_suppression("Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; .*"); call mtr.add_suppression("Slave I/O thread .* register on master"); +SET @saved_dbug = @@GLOBAL.debug_dbug; +connection slave; include/stop_slave.inc -SET @@global.debug= "+d,'debug_lock.before_get_UNIX_TIMESTAMP'"; +SET @old_dbug = @@global.debug_dbug; +SET @@global.debug_dbug= "d,'debug_lock.before_get_UNIX_TIMESTAMP'"; include/start_slave.inc slave is going to hang in get_master_version_and_clock include/rpl_stop_server.inc [server_number=1] slave is unblocked SET DEBUG_SYNC='now SIGNAL signal.get_unix_timestamp'; +connection slave; Check network error happened here include/wait_for_slave_io_error.inc [errno=1053, 2002, 2003, 2006, 2013] -set @@global.debug = "-d,'debug_lock.before_get_UNIX_TIMESTAMP'"; +set @@global.debug_dbug= @old_dbug; include/rpl_start_server.inc [server_number=1] include/wait_for_slave_param.inc [Slave_IO_Running] +connection slave; +connection slave; include/stop_slave.inc -SET @@global.debug= "+d,'debug_lock.before_get_SERVER_ID'"; +SET @old_dbug = @@global.debug_dbug; +SET @@global.debug_dbug= "d,'debug_lock.before_get_SERVER_ID'"; include/start_slave.inc slave is going to hang in get_master_version_and_clock include/rpl_stop_server.inc [server_number=1] slave is unblocked SET DEBUG_SYNC='now SIGNAL signal.get_server_id'; +connection slave; Check network error happened here include/wait_for_slave_io_error.inc [errno=1053, 2002, 2003, 2006, 2013] -set @@global.debug = "-d,'debug_lock.before_get_SERVER_ID'"; +set @@global.debug_dbug= @old_dbug; include/rpl_start_server.inc [server_number=1] include/wait_for_slave_param.inc [Slave_IO_Running] -set global debug= ''; +SET @@GLOBAL.debug_dbug = @saved_dbug; SET DEBUG_SYNC= 'RESET'; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_gtid_strict.result b/mysql-test/suite/rpl/r/rpl_gtid_strict.result index 528c4c5b5c1..27e7d105125 100644 --- a/mysql-test/suite/rpl/r/rpl_gtid_strict.result +++ b/mysql-test/suite/rpl/r/rpl_gtid_strict.result @@ -27,16 +27,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ SET server_id= 3; SET gtid_seq_no= 3; ERROR HY000: An attempt was made to binlog GTID 0-3-3 which would create an out-of-order sequence number with existing GTID 0-1-3, and gtid strict mode is enabled -SET SESSION debug_dbug="+d,ignore_set_gtid_seq_no_check"; +SET @old_dbug = @@session.debug_dbug; +SET SESSION debug_dbug="d,ignore_set_gtid_seq_no_check"; SET gtid_seq_no= 3; -SET SESSION debug_dbug="-d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug=@old_dbug; INSERT INTO t1 VALUES (2); ERROR HY000: An attempt was made to binlog GTID 0-3-3 which would create an out-of-order sequence number with existing GTID 0-1-3, and gtid strict mode is enabled SET gtid_seq_no= 2; ERROR HY000: An attempt was made to binlog GTID 0-3-2 which would create an out-of-order sequence number with existing GTID 0-1-3, and gtid strict mode is enabled -SET SESSION debug_dbug="+d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug="d,ignore_set_gtid_seq_no_check"; SET gtid_seq_no= 2; -SET SESSION debug_dbug="-d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug=@old_dbug; INSERT INTO t1 VALUES (3); ERROR HY000: An attempt was made to binlog GTID 0-3-2 which would create an out-of-order sequence number with existing GTID 0-1-3, and gtid strict mode is enabled SET server_id= 1; @@ -62,9 +63,9 @@ master-bin.000001 # Xid # # COMMIT /* XID */ SET server_id= 3; SET gtid_seq_no= 1; ERROR HY000: An attempt was made to binlog GTID 0-3-1 which would create an out-of-order sequence number with existing GTID 0-1-4, and gtid strict mode is enabled -SET SESSION debug_dbug="+d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug="d,ignore_set_gtid_seq_no_check"; SET gtid_seq_no= 1; -SET SESSION debug_dbug="-d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug=@old_dbug; CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=MyISAM; ERROR HY000: An attempt was made to binlog GTID 0-3-1 which would create an out-of-order sequence number with existing GTID 0-1-4, and gtid strict mode is enabled SET sql_log_bin= 0; @@ -73,9 +74,9 @@ SET sql_log_bin= 1; CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=MyISAM; SET gtid_seq_no= 1; ERROR HY000: An attempt was made to binlog GTID 0-3-1 which would create an out-of-order sequence number with existing GTID 0-3-5, and gtid strict mode is enabled -SET SESSION debug_dbug="+d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug="d,ignore_set_gtid_seq_no_check"; SET gtid_seq_no= 1; -SET SESSION debug_dbug="-d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug=@old_dbug; INSERT INTO t2 VALUES (1); ERROR HY000: An attempt was made to binlog GTID 0-3-1 which would create an out-of-order sequence number with existing GTID 0-3-5, and gtid strict mode is enabled SET server_id= 1; diff --git a/mysql-test/suite/rpl/r/rpl_row_corruption.result b/mysql-test/suite/rpl/r/rpl_row_corruption.result index b5bdc32200a..24535460418 100644 --- a/mysql-test/suite/rpl/r/rpl_row_corruption.result +++ b/mysql-test/suite/rpl/r/rpl_row_corruption.result @@ -7,15 +7,15 @@ INSERT INTO t2_11753004 VALUES (2); connection slave; call mtr.add_suppression(".*Found table map event mapping table id 0 which was already mapped but with different settings.*"); include/stop_slave.inc -SET @save_debug= @@global.debug; -SET GLOBAL debug_dbug="+d,inject_tblmap_same_id_maps_diff_table"; +SET @saved_debug= @@global.debug_dbug; +SET @@global.debug_dbug="d,inject_tblmap_same_id_maps_diff_table"; include/start_slave.inc connection master; UPDATE t1_11753004, t2_11753004 SET t1_11753004.c1=3, t2_11753004.c1=4 WHERE t1_11753004.c1=1 OR t2_11753004.c1=2; connection slave; include/wait_for_slave_sql_error.inc [errno=1593 ] include/stop_slave.inc -SET GLOBAL debug_dbug="-d,inject_tblmap_same_id_maps_diff_table"; +SET @@global.debug_dbug=@saved_debug; include/start_slave.inc connection master; include/rpl_reset.inc @@ -23,7 +23,7 @@ DROP TABLE t1_11753004, t2_11753004; connection slave; connection slave; include/stop_slave.inc -SET GLOBAL debug_dbug="+d,inject_tblmap_same_id_maps_diff_table"; +SET @@global.debug_dbug="d,inject_tblmap_same_id_maps_diff_table"; include/start_slave.inc include/rpl_reset.inc connection master; @@ -41,7 +41,7 @@ BINLOG ' SOgWTg8BAAAAbgAAAHIAAAAAAAQANS42LjMtbTUtZGVidWctbG9nAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABI6BZOEzgNAAgAEgAEBAQEEgAAVgAEGggAAAAICAgCAAAAAAVAYI8= '/*!*/; -SET GLOBAL debug_dbug="+d,inject_tblmap_same_id_maps_diff_table"; +SET @@global.debug_dbug="d,inject_tblmap_same_id_maps_diff_table"; BINLOG ' SOgWThMBAAAAKQAAAAYDAAAAAEIAAAAAAAEABHRlc3QAAnQxAAEDAAE= SOgWThMBAAAAKQAAAC8DAAAAAEMAAAAAAAEABHRlc3QAAnQyAAEDAAE= @@ -51,10 +51,10 @@ SOgWThgBAAAAKAAAAH8DAAAAAEMAAAAAAAEAAf///gEAAAD+BAAAAA== ERROR HY000: Fatal error: Found table map event mapping table id 0 which was already mapped but with different settings. DROP TABLE t1,t2; connection slave; -SET GLOBAL debug_dbug="-d,inject_tblmap_same_id_maps_diff_table"; +SET @@global.debug_dbug=@saved_debug; connection master; DROP TABLE t1_11753004; DROP TABLE t2_11753004_ign; connection slave; -SET GLOBAL debug_dbug= @save_debug; +SET @@global.debug_dbug= @save_debug; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_stm_stop_middle_group.result b/mysql-test/suite/rpl/r/rpl_stm_stop_middle_group.result index b670a16bfcd..0afe1992fb9 100644 --- a/mysql-test/suite/rpl/r/rpl_stm_stop_middle_group.result +++ b/mysql-test/suite/rpl/r/rpl_stm_stop_middle_group.result @@ -7,7 +7,7 @@ create table tm (a int auto_increment primary key) engine=myisam; create table ti (a int auto_increment primary key) engine=innodb; connection slave; SET @saved_dbug = @@GLOBAL.debug_dbug; -set @@global.debug_dbug="+d,stop_slave_middle_group"; +set @@global.debug_dbug="d,stop_slave_middle_group"; connection master; begin; insert into ti set a=null; @@ -28,14 +28,13 @@ one select count(*) as one from ti; one 1 -set @@global.debug_dbug="-d"; +set @@global.debug_dbug=@saved_dbug; include/start_slave.inc connection master; truncate table tm; truncate table ti; connection slave; -set @@global.debug_dbug="+d,stop_slave_middle_group"; -set @@global.debug_dbug="+d,incomplete_group_in_relay_log"; +set @@global.debug_dbug="d,stop_slave_middle_group,incomplete_group_in_relay_log"; connection master; begin; insert into ti set a=null; @@ -54,14 +53,13 @@ one select count(*) as zero from ti; zero 0 -set @@global.debug_dbug="-d"; +set @@global.debug_dbug=@saved_dbug; stop slave; truncate table tm; include/start_slave.inc connection master; connection slave; -set @@global.debug_dbug="+d,stop_slave_middle_group"; -set @@global.debug_dbug="+d,incomplete_group_in_relay_log"; +set @@global.debug_dbug="d,stop_slave_middle_group,incomplete_group_in_relay_log"; connection master; update tm as t1, ti as t2 set t1.a=t1.a * 2, t2.a=t2.a * 2; connection slave; diff --git a/mysql-test/suite/rpl/t/circular_serverid0.test b/mysql-test/suite/rpl/t/circular_serverid0.test index 097a2932404..64cf231c2c2 100644 --- a/mysql-test/suite/rpl/t/circular_serverid0.test +++ b/mysql-test/suite/rpl/t/circular_serverid0.test @@ -24,8 +24,8 @@ --connection M2 STOP SLAVE; -SET @old_debug= @@global.debug; -SET GLOBAL debug_dbug= "+d,dbug.rows_events_to_delay_relay_logging"; +SET @old_debug= @@global.debug_dbug; +SET GLOBAL debug_dbug= "d,dbug.rows_events_to_delay_relay_logging"; START SLAVE IO_THREAD; --source include/wait_for_slave_io_to_start.inc diff --git a/mysql-test/suite/rpl/t/rpl_bug41902-slave.opt b/mysql-test/suite/rpl/t/rpl_bug41902-slave.opt deleted file mode 100644 index 37fc56036fb..00000000000 --- a/mysql-test/suite/rpl/t/rpl_bug41902-slave.opt +++ /dev/null @@ -1 +0,0 @@ ---loose-debug=-d,simulate_find_log_pos_error diff --git a/mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test b/mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test index f3ba39fb330..a949da0cc25 100644 --- a/mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test +++ b/mysql-test/suite/rpl/t/rpl_domain_id_filter_io_crash.test @@ -36,7 +36,7 @@ let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignor --echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after SET @saved_dbug = @@GLOBAL.debug_dbug; -SET @@global.debug_dbug="+d,kill_slave_io_before_commit"; +SET @@global.debug_dbug="d,kill_slave_io_before_commit"; connection master; @@ -51,7 +51,7 @@ connection slave; --let $slave_io_errno= 1595 --source include/wait_for_slave_io_error.inc SELECT * FROM t1; -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; START SLAVE io_thread; --source include/wait_for_slave_io_to_start.inc @@ -77,7 +77,7 @@ let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignor --echo DO_DOMAIN_IDS (AFTER) : $do_domain_ids_after --echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after -SET @@global.debug_dbug="+d,kill_slave_io_before_commit"; +SET @@global.debug_dbug="d,kill_slave_io_before_commit"; connection master; @@ -93,7 +93,7 @@ connection slave; --let $slave_io_errno= 1595 --source include/wait_for_slave_io_error.inc SELECT * FROM t1; -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; START SLAVE io_thread; --source include/wait_for_slave_io_to_start.inc @@ -119,7 +119,7 @@ let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignor --echo DO_DOMAIN_IDS (AFTER) : $do_domain_ids_after --echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after -SET @@global.debug_dbug="+d,kill_slave_io_before_commit"; +SET @@global.debug_dbug="d,kill_slave_io_before_commit"; connection master; @@ -148,7 +148,7 @@ connection slave; --source include/wait_for_slave_io_error.inc SELECT * FROM t1; -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; --source include/stop_slave.inc let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1); @@ -186,7 +186,7 @@ let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignor --echo DO_DOMAIN_IDS (AFTER) : $do_domain_ids_after --echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after -SET @@global.debug_dbug="+d,kill_slave_io_before_commit"; +SET @@global.debug_dbug="d,kill_slave_io_before_commit"; connection master; @@ -216,7 +216,7 @@ connection slave; --source include/wait_for_slave_io_error.inc SELECT * FROM t1; -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; --source include/stop_slave.inc let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1); @@ -254,7 +254,7 @@ let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignor --echo DO_DOMAIN_IDS (AFTER) : $do_domain_ids_after --echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after -SET @@global.debug_dbug="+d,kill_slave_io_after_2_events"; +SET @@global.debug_dbug="d,kill_slave_io_after_2_events"; connection master; @@ -284,7 +284,7 @@ connection slave; --source include/wait_for_slave_io_error.inc SELECT * FROM t1; -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; --source include/stop_slave.inc let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1); @@ -322,7 +322,7 @@ let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignor --echo DO_DOMAIN_IDS (AFTER) : $do_domain_ids_after --echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after -SET @@global.debug_dbug="+d,kill_slave_io_after_2_events"; +SET @@global.debug_dbug="d,kill_slave_io_after_2_events"; connection master; @@ -352,7 +352,7 @@ connection slave; --source include/wait_for_slave_io_error.inc SELECT * FROM t1; -SET @@global.debug_dbug="-d"; +SET @@global.debug_dbug=@saved_dbug; --source include/stop_slave.inc let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1); diff --git a/mysql-test/suite/rpl/t/rpl_gtid_strict.test b/mysql-test/suite/rpl/t/rpl_gtid_strict.test index afcb179da78..56ebba824c4 100644 --- a/mysql-test/suite/rpl/t/rpl_gtid_strict.test +++ b/mysql-test/suite/rpl/t/rpl_gtid_strict.test @@ -29,17 +29,18 @@ INSERT INTO t1 VALUES (1); SET server_id= 3; --error ER_GTID_STRICT_OUT_OF_ORDER SET gtid_seq_no= 3; -SET SESSION debug_dbug="+d,ignore_set_gtid_seq_no_check"; +SET @old_dbug = @@session.debug_dbug; +SET SESSION debug_dbug="d,ignore_set_gtid_seq_no_check"; SET gtid_seq_no= 3; -SET SESSION debug_dbug="-d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug=@old_dbug; --error ER_GTID_STRICT_OUT_OF_ORDER INSERT INTO t1 VALUES (2); --error ER_GTID_STRICT_OUT_OF_ORDER SET gtid_seq_no= 2; -SET SESSION debug_dbug="+d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug="d,ignore_set_gtid_seq_no_check"; SET gtid_seq_no= 2; -SET SESSION debug_dbug="-d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug=@old_dbug; --error ER_GTID_STRICT_OUT_OF_ORDER INSERT INTO t1 VALUES (3); SET server_id= 1; @@ -52,9 +53,9 @@ SELECT * FROM t1 ORDER BY 1; SET server_id= 3; --error ER_GTID_STRICT_OUT_OF_ORDER SET gtid_seq_no= 1; -SET SESSION debug_dbug="+d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug="d,ignore_set_gtid_seq_no_check"; SET gtid_seq_no= 1; -SET SESSION debug_dbug="-d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug=@old_dbug; --error ER_GTID_STRICT_OUT_OF_ORDER CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=MyISAM; # The table is still created, DDL cannot be rolled back. @@ -66,9 +67,9 @@ CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=MyISAM; --error ER_GTID_STRICT_OUT_OF_ORDER SET gtid_seq_no= 1; -SET SESSION debug_dbug="+d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug="d,ignore_set_gtid_seq_no_check"; SET gtid_seq_no= 1; -SET SESSION debug_dbug="-d,ignore_set_gtid_seq_no_check"; +SET SESSION debug_dbug=@old_dbug; --error ER_GTID_STRICT_OUT_OF_ORDER INSERT INTO t2 VALUES (1); # The value is still inserted, cannot be rolled back. diff --git a/mysql-test/suite/rpl/t/rpl_row_corruption.test b/mysql-test/suite/rpl/t/rpl_row_corruption.test index acf3964f0c5..d78df905ccb 100644 --- a/mysql-test/suite/rpl/t/rpl_row_corruption.test +++ b/mysql-test/suite/rpl/t/rpl_row_corruption.test @@ -27,8 +27,8 @@ call mtr.add_suppression(".*Found table map event mapping table id 0 which was a # stop the slave and inject corruption --source include/stop_slave.inc -SET @save_debug= @@global.debug; -SET GLOBAL debug_dbug="+d,inject_tblmap_same_id_maps_diff_table"; +SET @saved_debug= @@global.debug_dbug; +SET @@global.debug_dbug="d,inject_tblmap_same_id_maps_diff_table"; --source include/start_slave.inc --connection master # both tables get mapped to 0 (in a way, simulating scenario @@ -42,7 +42,7 @@ SET GLOBAL debug_dbug="+d,inject_tblmap_same_id_maps_diff_table"; --source include/stop_slave.inc # clean up -SET GLOBAL debug_dbug="-d,inject_tblmap_same_id_maps_diff_table"; +SET @@global.debug_dbug=@saved_debug; --source include/start_slave.inc --connection master --source include/rpl_reset.inc @@ -55,7 +55,7 @@ SET GLOBAL debug_dbug="-d,inject_tblmap_same_id_maps_diff_table"; --connection slave --source include/stop_slave.inc -SET GLOBAL debug_dbug="+d,inject_tblmap_same_id_maps_diff_table"; +SET @@global.debug_dbug="d,inject_tblmap_same_id_maps_diff_table"; --source include/start_slave.inc --source include/rpl_reset.inc --connection master @@ -92,7 +92,7 @@ AAAAAAAAAAAAAAAAAABI6BZOEzgNAAgAEgAEBAQEEgAAVgAEGggAAAAICAgCAAAAAAVAYI8= #110708 12:21:44 server id 1 end_log_pos 855 Update_rows: table id 66 # at 855 #110708 12:21:44 server id 1 end_log_pos 895 Update_rows: table id 67 flags: STMT_END_F -SET GLOBAL debug_dbug="+d,inject_tblmap_same_id_maps_diff_table"; +SET @@global.debug_dbug="d,inject_tblmap_same_id_maps_diff_table"; --error ER_SLAVE_FATAL_ERROR BINLOG ' SOgWThMBAAAAKQAAAAYDAAAAAEIAAAAAAAEABHRlc3QAAnQxAAEDAAE= @@ -105,11 +105,11 @@ SOgWThgBAAAAKAAAAH8DAAAAAEMAAAAAAAEAAf///gEAAAD+BAAAAA== # clean up DROP TABLE t1,t2; --connection slave -SET GLOBAL debug_dbug="-d,inject_tblmap_same_id_maps_diff_table"; +SET @@global.debug_dbug=@saved_debug; --connection master --eval DROP TABLE $t1 --eval DROP TABLE $t2_ign --sync_slave_with_master -SET GLOBAL debug_dbug= @save_debug; +SET @@global.debug_dbug= @save_debug; --source include/rpl_end.inc diff --git a/mysql-test/suite/sys_vars/r/innodb_instant_alter_column_allowed_basic.result b/mysql-test/suite/sys_vars/r/innodb_instant_alter_column_allowed_basic.result new file mode 100644 index 00000000000..0c25c788dbe --- /dev/null +++ b/mysql-test/suite/sys_vars/r/innodb_instant_alter_column_allowed_basic.result @@ -0,0 +1,49 @@ +SET @start_global_value = @@global.innodb_instant_alter_column_allowed; +SET GLOBAL innodb_instant_alter_column_allowed=never; +select @@session.innodb_instant_alter_column_allowed; +ERROR HY000: Variable 'innodb_instant_alter_column_allowed' is a GLOBAL variable +show global variables like 'innodb_instant_alter_column_allowed'; +Variable_name Value +innodb_instant_alter_column_allowed never +show session variables like 'innodb_instant_alter_column_allowed'; +Variable_name Value +innodb_instant_alter_column_allowed never +SELECT * FROM information_schema.global_variables +WHERE variable_name='innodb_instant_alter_column_allowed'; +VARIABLE_NAME VARIABLE_VALUE +INNODB_INSTANT_ALTER_COLUMN_ALLOWED never +SELECT * FROM information_schema.session_variables +WHERE variable_name='innodb_instant_alter_column_allowed'; +VARIABLE_NAME VARIABLE_VALUE +INNODB_INSTANT_ALTER_COLUMN_ALLOWED never +set global innodb_instant_alter_column_allowed=no; +ERROR 42000: Variable 'innodb_instant_alter_column_allowed' can't be set to the value of 'no' +set global innodb_instant_alter_column_allowed=1.1; +ERROR 42000: Incorrect argument type to variable 'innodb_instant_alter_column_allowed' +set global innodb_instant_alter_column_allowed=-1; +ERROR 42000: Variable 'innodb_instant_alter_column_allowed' can't be set to the value of '-1' +select @@global.innodb_instant_alter_column_allowed; +@@global.innodb_instant_alter_column_allowed +never +set global innodb_instant_alter_column_allowed=3; +ERROR 42000: Variable 'innodb_instant_alter_column_allowed' can't be set to the value of '3' +select @@global.innodb_instant_alter_column_allowed; +@@global.innodb_instant_alter_column_allowed +never +set global innodb_instant_alter_column_allowed=2; +select @@global.innodb_instant_alter_column_allowed; +@@global.innodb_instant_alter_column_allowed +add_drop_reorder +set global innodb_instant_alter_column_allowed=1; +select @@global.innodb_instant_alter_column_allowed; +@@global.innodb_instant_alter_column_allowed +add_last +set global innodb_instant_alter_column_allowed=0; +select @@global.innodb_instant_alter_column_allowed; +@@global.innodb_instant_alter_column_allowed +never +set global innodb_instant_alter_column_allowed=default; +select @@global.innodb_instant_alter_column_allowed; +@@global.innodb_instant_alter_column_allowed +add_drop_reorder +SET GLOBAL innodb_instant_alter_column_allowed = @start_global_value; diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result index f91c01c285a..41db90a4464 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result @@ -1137,6 +1137,18 @@ NUMERIC_BLOCK_SIZE NULL ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME INNODB_INSTANT_ALTER_COLUMN_ALLOWED +SESSION_VALUE NULL +DEFAULT_VALUE add_drop_reorder +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT File format constraint for ALTER TABLE +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST never,add_last,add_drop_reorder +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_IO_CAPACITY SESSION_VALUE NULL DEFAULT_VALUE 200 diff --git a/mysql-test/suite/sys_vars/t/innodb_instant_alter_column_allowed_basic.test b/mysql-test/suite/sys_vars/t/innodb_instant_alter_column_allowed_basic.test new file mode 100644 index 00000000000..c9921b18f96 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/innodb_instant_alter_column_allowed_basic.test @@ -0,0 +1,34 @@ +--source include/have_innodb.inc + +SET @start_global_value = @@global.innodb_instant_alter_column_allowed; +SET GLOBAL innodb_instant_alter_column_allowed=never; + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +select @@session.innodb_instant_alter_column_allowed; +show global variables like 'innodb_instant_alter_column_allowed'; +show session variables like 'innodb_instant_alter_column_allowed'; +SELECT * FROM information_schema.global_variables +WHERE variable_name='innodb_instant_alter_column_allowed'; +SELECT * FROM information_schema.session_variables +WHERE variable_name='innodb_instant_alter_column_allowed'; + +--error ER_WRONG_VALUE_FOR_VAR +set global innodb_instant_alter_column_allowed=no; +--error ER_WRONG_TYPE_FOR_VAR +set global innodb_instant_alter_column_allowed=1.1; +--error ER_WRONG_VALUE_FOR_VAR +set global innodb_instant_alter_column_allowed=-1; +select @@global.innodb_instant_alter_column_allowed; +--error ER_WRONG_VALUE_FOR_VAR +set global innodb_instant_alter_column_allowed=3; +select @@global.innodb_instant_alter_column_allowed; +set global innodb_instant_alter_column_allowed=2; +select @@global.innodb_instant_alter_column_allowed; +set global innodb_instant_alter_column_allowed=1; +select @@global.innodb_instant_alter_column_allowed; +set global innodb_instant_alter_column_allowed=0; +select @@global.innodb_instant_alter_column_allowed; +set global innodb_instant_alter_column_allowed=default; +select @@global.innodb_instant_alter_column_allowed; + +SET GLOBAL innodb_instant_alter_column_allowed = @start_global_value; |