[MDEV-28959] Online alter ignores strict table mode Created: 2022-06-27  Updated: 2023-08-16  Resolved: 2023-03-29

Status: Closed
Project: MariaDB Server
Component/s: Data Definition - Alter Table
Affects Version/s: N/A
Fix Version/s: 11.2.1

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-16329 Engine-independent online ALTER TABLE Closed
Relates
relates to MDEV-28808 Test MDEV-16329 (ALTER ONLINE TABLE) ... Stalled

 Description   

When online alter is applied on top of intermediate DML changes, it converts data truncation errors and such into warnings, even if strict mode is enabled.

--source include/have_debug_sync.inc
 
create table t (a int);
insert into t values (1),(2),(3);
--send
  set debug_sync= 'now wait_for downgraded';
 
--connect (con_alter,localhost,root,,test)
 
set sql_mode='STRICT_TRANS_TABLES,STRICT_ALL_TABLES';
set debug_sync= 'alter_table_online_downgraded signal downgraded wait_for goforit';
--send
  alter table t modify a int not null, algorithm=copy, lock=none;
 
--connection default
--reap
insert into t values (null),(null);
set debug_sync= 'now signal goforit';
 
--connection con_alter
--reap
show create table t;
select * from t;
 
# Cleanup
drop table t;
set debug_sync= reset;

bb-10.10-MDEV-16329 cb1f08bd1

connection default;
insert into t values (null),(null);
set debug_sync= 'now signal goforit';
connection con_alter;
Warnings:
Warning	1265	Data truncated for column 'a' at row 4
Warning	1265	Data truncated for column 'a' at row 4
show create table t;
Table	Create Table
t	CREATE TABLE `t` (
  `a` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t;
a
1
2
3
0
0

Reproducible the same way with at least InnoDB and MyISAM.



 Comments   
Comment by Nikita Malyavin [ 2022-06-30 ]

looks good to me

Generated at Thu Feb 08 10:04:47 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.