diff --git a/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff b/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff index a1fa20c2ba1..805ccdb563c 100644 --- a/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff +++ b/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff @@ -1,6 +1,6 @@ --- alter_algorithm.result +++ alter_algorithm.reject -@@ -7,44 +7,44 @@ +@@ -7,40 +7,40 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; @@alter_algorithm @@ -18,12 +18,6 @@ -affected rows: 1 -info: Records: 1 Duplicates: 0 Warnings: 0 +affected rows: 0 -+info: Records: 0 Duplicates: 0 Warnings: 0 - # Make existing column NON-NULLABLE - ALTER TABLE t1 MODIFY f3 INT NOT NULL; --affected rows: 1 --info: Records: 1 Duplicates: 0 Warnings: 0 -+affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 # Drop Stored Column ALTER TABLE t1 DROP COLUMN f5; @@ -64,7 +58,7 @@ DROP TABLE t1; affected rows: 0 CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, -@@ -57,22 +57,22 @@ +@@ -53,22 +53,22 @@ FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB; INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; @@ -97,7 +91,7 @@ DROP TABLE t2, t1; affected rows: 0 CREATE TABLE t1(f1 INT NOT NULL, -@@ -85,27 +85,27 @@ +@@ -81,27 +81,27 @@ INSERT INTO t1(f1, f2) VALUES(1, 1); # Add column at the end of the table ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; @@ -135,7 +129,7 @@ # Column length varies ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); affected rows: 0 -@@ -113,12 +113,12 @@ +@@ -109,12 +109,12 @@ SET foreign_key_checks = 0; affected rows: 0 ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); diff --git a/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff b/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff index 879bba43932..6d2ee160e46 100644 --- a/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff +++ b/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff @@ -1,6 +1,6 @@ --- alter_algorithm.result +++ alter_algorithm.reject -@@ -7,44 +7,35 @@ +@@ -7,40 +7,32 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; @@alter_algorithm @@ -16,11 +16,6 @@ ALTER TABLE t1 MODIFY f2 INT; -affected rows: 1 -info: Records: 1 Duplicates: 0 Warnings: 0 -+Got one of the listed errors - # Make existing column NON-NULLABLE - ALTER TABLE t1 MODIFY f3 INT NOT NULL; --affected rows: 1 --info: Records: 1 Duplicates: 0 Warnings: 0 +Got one of the listed errors # Drop Stored Column ALTER TABLE t1 DROP COLUMN f5; @@ -55,7 +50,7 @@ DROP TABLE t1; affected rows: 0 CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, -@@ -57,22 +48,17 @@ +@@ -53,22 +45,17 @@ FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB; INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; @@ -83,7 +78,7 @@ DROP TABLE t2, t1; affected rows: 0 CREATE TABLE t1(f1 INT NOT NULL, -@@ -85,27 +71,27 @@ +@@ -81,27 +68,27 @@ INSERT INTO t1(f1, f2) VALUES(1, 1); # Add column at the end of the table ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; @@ -121,7 +116,7 @@ # Column length varies ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); affected rows: 0 -@@ -113,12 +99,12 @@ +@@ -109,12 +96,12 @@ SET foreign_key_checks = 0; affected rows: 0 ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); diff --git a/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff b/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff index 6db0f2af347..c6ce83b5d9f 100644 --- a/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff +++ b/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff @@ -1,6 +1,6 @@ --- alter_algorithm.result +++ alter_algorithm.reject -@@ -7,44 +7,35 @@ +@@ -7,40 +7,32 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; @@alter_algorithm @@ -16,11 +16,6 @@ ALTER TABLE t1 MODIFY f2 INT; -affected rows: 1 -info: Records: 1 Duplicates: 0 Warnings: 0 -+Got one of the listed errors - # Make existing column NON-NULLABLE - ALTER TABLE t1 MODIFY f3 INT NOT NULL; --affected rows: 1 --info: Records: 1 Duplicates: 0 Warnings: 0 +Got one of the listed errors # Drop Stored Column ALTER TABLE t1 DROP COLUMN f5; @@ -55,7 +50,7 @@ DROP TABLE t1; affected rows: 0 CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, -@@ -57,22 +48,22 @@ +@@ -53,22 +45,22 @@ FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB; INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; @@ -88,7 +83,7 @@ DROP TABLE t2, t1; affected rows: 0 CREATE TABLE t1(f1 INT NOT NULL, -@@ -85,27 +76,27 @@ +@@ -81,27 +73,27 @@ INSERT INTO t1(f1, f2) VALUES(1, 1); # Add column at the end of the table ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; @@ -126,7 +121,7 @@ # Column length varies ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); affected rows: 0 -@@ -113,12 +104,12 @@ +@@ -109,12 +101,12 @@ SET foreign_key_checks = 0; affected rows: 0 ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); diff --git a/mysql-test/suite/innodb/r/alter_algorithm.result b/mysql-test/suite/innodb/r/alter_algorithm.result index 3d3a7e85444..bcfbe3355f9 100644 --- a/mysql-test/suite/innodb/r/alter_algorithm.result +++ b/mysql-test/suite/innodb/r/alter_algorithm.result @@ -17,10 +17,6 @@ info: Records: 1 Duplicates: 0 Warnings: 0 ALTER TABLE t1 MODIFY f2 INT; affected rows: 1 info: Records: 1 Duplicates: 0 Warnings: 0 -# Make existing column NON-NULLABLE -ALTER TABLE t1 MODIFY f3 INT NOT NULL; -affected rows: 1 -info: Records: 1 Duplicates: 0 Warnings: 0 # Drop Stored Column ALTER TABLE t1 DROP COLUMN f5; affected rows: 1 diff --git a/mysql-test/suite/innodb/r/innodb-alter-nullable.result b/mysql-test/suite/innodb/r/innodb-alter-nullable.result index 68ad6762335..1d481cf2bfe 100644 --- a/mysql-test/suite/innodb/r/innodb-alter-nullable.result +++ b/mysql-test/suite/innodb/r/innodb-alter-nullable.result @@ -96,8 +96,8 @@ INSERT INTO t3 SET c=NULL; SET @old_sql_mode = @@sql_mode; SET sql_mode = ''; ALTER TABLE t1 MODIFY c INT NOT NULL; -affected rows: 0 -info: Records: 0 Duplicates: 0 Warnings: 1 +affected rows: 1 +info: Records: 1 Duplicates: 0 Warnings: 1 Warnings: Warning 1265 Data truncated for column 'c' at row 1 ALTER TABLE t2 MODIFY c INT NOT NULL; @@ -111,10 +111,9 @@ info: Records: 1 Duplicates: 0 Warnings: 1 Warnings: Warning 1265 Data truncated for column 'c' at row 1 SET sql_mode = @old_sql_mode; -# MDEV-18819 FIXME: Wrong result g=NULL SELECT * FROM t1; c g -0 NULL +0 0 SELECT * FROM t2; c v 0 0 @@ -137,8 +136,8 @@ INSERT INTO t1 SET c=NULL; INSERT INTO t2 SET c=NULL; INSERT INTO t3 SET c=NULL; ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL; -affected rows: 0 -info: Records: 0 Duplicates: 0 Warnings: 1 +affected rows: 1 +info: Records: 1 Duplicates: 0 Warnings: 1 Warnings: Warning 1265 Data truncated for column 'c' at row 1 ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL; @@ -151,10 +150,9 @@ affected rows: 1 info: Records: 1 Duplicates: 0 Warnings: 1 Warnings: Warning 1265 Data truncated for column 'c' at row 1 -# MDEV-18819 FIXME: Wrong result g=NULL SELECT * FROM t1; c g -0 NULL +0 0 SELECT * FROM t2; c v 0 0 @@ -186,12 +184,11 @@ UPDATE t1 SET c=0; UPDATE t2 SET c=0; UPDATE t3 SET c=0; ALTER TABLE t1 MODIFY c INT NOT NULL; -affected rows: 0 -info: Records: 0 Duplicates: 0 Warnings: 0 +affected rows: 1 +info: Records: 1 Duplicates: 0 Warnings: 0 ALTER TABLE t2 MODIFY c INT NOT NULL; affected rows: 0 info: Records: 0 Duplicates: 0 Warnings: 0 -# MDEV-18819 FIXME: This should not require ALGORITHM=COPY. ALTER TABLE t3 MODIFY c INT NOT NULL; affected rows: 1 info: Records: 1 Duplicates: 0 Warnings: 0 diff --git a/mysql-test/suite/innodb/t/alter_algorithm.test b/mysql-test/suite/innodb/t/alter_algorithm.test index 7cb706e865a..d410a15154d 100644 --- a/mysql-test/suite/innodb/t/alter_algorithm.test +++ b/mysql-test/suite/innodb/t/alter_algorithm.test @@ -31,10 +31,6 @@ ALTER TABLE t1 ADD COLUMN col1 INT NOT NULL,DROP PRIMARY KEY,ADD PRIMARY KEY(col --error $error_code ALTER TABLE t1 MODIFY f2 INT; ---echo # Make existing column NON-NULLABLE ---error $error_code -ALTER TABLE t1 MODIFY f3 INT NOT NULL; - --echo # Drop Stored Column --error $error_code ALTER TABLE t1 DROP COLUMN f5; diff --git a/mysql-test/suite/innodb/t/innodb-alter-nullable.test b/mysql-test/suite/innodb/t/innodb-alter-nullable.test index 9e6f5df2bc9..af13a12ab41 100644 --- a/mysql-test/suite/innodb/t/innodb-alter-nullable.test +++ b/mysql-test/suite/innodb/t/innodb-alter-nullable.test @@ -104,7 +104,6 @@ ALTER TABLE t2 MODIFY c INT NOT NULL; ALTER TABLE t3 MODIFY c INT NOT NULL; --disable_info SET sql_mode = @old_sql_mode; ---echo # MDEV-18819 FIXME: Wrong result g=NULL SELECT * FROM t1; SELECT * FROM t2; SELECT * FROM t3; @@ -123,7 +122,6 @@ ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL; ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL; ALTER IGNORE TABLE t3 MODIFY c INT NOT NULL; --disable_info ---echo # MDEV-18819 FIXME: Wrong result g=NULL SELECT * FROM t1; SELECT * FROM t2; SELECT * FROM t3; @@ -151,7 +149,6 @@ UPDATE t3 SET c=0; --enable_info ALTER TABLE t1 MODIFY c INT NOT NULL; ALTER TABLE t2 MODIFY c INT NOT NULL; ---echo # MDEV-18819 FIXME: This should not require ALGORITHM=COPY. ALTER TABLE t3 MODIFY c INT NOT NULL; --disable_info SELECT * FROM t1; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 8eb0b078bd1..bb22e9a9f34 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -6733,7 +6733,7 @@ static bool fill_alter_inplace_info(THD *thd, TABLE *table, bool varchar, } if (field->vcol_info->is_in_partitioning_expr() || - field->flags & PART_KEY_FLAG) + field->flags & PART_KEY_FLAG || field->stored_in_db()) { if (value_changes) ha_alter_info->handler_flags|= ALTER_COLUMN_VCOL;