1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

don't do ALTER IGNORE TABLE online

because online means we'll apply events from the binlog, and
ignore means that bad rows will be skipped. So a bad Write_row_log_event
will be skipped and a following Update_row_log_event will fail to
apply.
This commit is contained in:
Sergei Golubchik
2022-07-15 08:52:33 +02:00
parent aa9e173e9e
commit 472c3d082f
5 changed files with 22 additions and 2 deletions

View File

@ -654,8 +654,9 @@ 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;
set sql_mode='';
set debug_sync= 'alter_table_online_downgraded signal downgraded wait_for goforit';
alter ignore table t1 drop b, add b char(3) as (a) stored, algorithm=copy, lock=none;
alter table t1 drop b, add b char(3) as (a) stored, algorithm=copy, lock=none;
connection default;
update t1 set a = 'foobarqux';
set debug_sync= 'now signal goforit';
@ -663,6 +664,7 @@ connection con2;
Warnings:
Warning 1265 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'b' at row 2
set sql_mode=default;
connection default;
drop table t1;
set debug_sync= reset;