Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Critical 
- 
    Resolution: Fixed
- 
    N/A
- 
    None
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.
Attachments
Issue Links
- is caused by
- 
                    MDEV-16329 Engine-independent online ALTER TABLE -         
- Closed
 
-         
- relates to
- 
                     MDEV-28808
        Test MDEV-16329 (ALTER ONLINE TABLE) - Core server part MDEV-28808
        Test MDEV-16329 (ALTER ONLINE TABLE) - Core server part-         
- Closed
 
-