diff options
-rw-r--r-- | mysql-test/main/alter_table_online_debug.result | 20 | ||||
-rw-r--r-- | mysql-test/main/alter_table_online_debug.test | 28 |
2 files changed, 46 insertions, 2 deletions
diff --git a/mysql-test/main/alter_table_online_debug.result b/mysql-test/main/alter_table_online_debug.result index e5ebe1e7a1e..11ff61250ac 100644 --- a/mysql-test/main/alter_table_online_debug.result +++ b/mysql-test/main/alter_table_online_debug.result @@ -650,7 +650,7 @@ set debug_sync= reset; # # MDEV-29021 ALTER TABLE fails when a stored virtual column is dropped and added # -create table t1 (a char(9), b char(9) as (a) stored) engine=InnoDB; +create table t1 (a char(9), b char(9) as (a) stored); insert into t1(a) values ('foobar'); set debug_sync= 'now wait_for downgraded'; connection con2; @@ -708,6 +708,24 @@ connection default; drop table t1; set debug_sync= reset; # +# DELETE with added virtual column +# +CREATE TABLE t1 (a CHAR(3), b CHAR(3) AS (a)); +INSERT INTO t1 (a) VALUES ('foo'),('bar'); +set debug_sync= 'now wait_for downgraded'; +connection con2; +set debug_sync= 'alter_table_online_downgraded signal downgraded wait_for goforit'; +ALTER TABLE t1 ADD c INT, ALGORITHM=COPY, LOCK=NONE; +connection default; +DELETE FROM t1; +set debug_sync= 'now signal goforit'; +connection con2; +select * from t1; +a b c +connection default; +DROP TABLE t1; +set debug_sync= reset; +# # Do not ignore sql_mode when replicating # create table t1 (a int); diff --git a/mysql-test/main/alter_table_online_debug.test b/mysql-test/main/alter_table_online_debug.test index e880613790f..df1c3e7d8f1 100644 --- a/mysql-test/main/alter_table_online_debug.test +++ b/mysql-test/main/alter_table_online_debug.test @@ -804,7 +804,7 @@ set debug_sync= reset; --echo # --echo # MDEV-29021 ALTER TABLE fails when a stored virtual column is dropped and added --echo # -create table t1 (a char(9), b char(9) as (a) stored) engine=InnoDB; +create table t1 (a char(9), b char(9) as (a) stored); insert into t1(a) values ('foobar'); --send set debug_sync= 'now wait_for downgraded' @@ -876,6 +876,32 @@ drop table t1; set debug_sync= reset; --echo # +--echo # DELETE with added virtual column +--echo # +CREATE TABLE t1 (a CHAR(3), b CHAR(3) AS (a)); +INSERT INTO t1 (a) VALUES ('foo'),('bar'); +--send +set debug_sync= 'now wait_for downgraded'; + +--connection con2 +set debug_sync= 'alter_table_online_downgraded signal downgraded wait_for goforit'; +--send +ALTER TABLE t1 ADD c INT, ALGORITHM=COPY, LOCK=NONE; + +--connection default +--reap +DELETE FROM t1; +set debug_sync= 'now signal goforit'; + +--connection con2 +--reap +select * from t1; + +--connection default +DROP TABLE t1; +set debug_sync= reset; + +--echo # --echo # Do not ignore sql_mode when replicating --echo # create table t1 (a int); |