Commit d6d621ce authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-18819 ALTER_COLUMN_VCOL is not set for generated stored columns

parent 73c864b5
--- alter_algorithm.result --- alter_algorithm.result
+++ alter_algorithm.reject +++ alter_algorithm.reject
@@ -7,44 +7,44 @@ @@ -7,40 +7,40 @@
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
SELECT @@alter_algorithm; SELECT @@alter_algorithm;
@@alter_algorithm @@alter_algorithm
...@@ -18,12 +18,6 @@ ...@@ -18,12 +18,6 @@
-affected rows: 1 -affected rows: 1
-info: Records: 1 Duplicates: 0 Warnings: 0 -info: Records: 1 Duplicates: 0 Warnings: 0
+affected rows: 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 +info: Records: 0 Duplicates: 0 Warnings: 0
# Drop Stored Column # Drop Stored Column
ALTER TABLE t1 DROP COLUMN f5; ALTER TABLE t1 DROP COLUMN f5;
...@@ -64,7 +58,7 @@ ...@@ -64,7 +58,7 @@
DROP TABLE t1; DROP TABLE t1;
affected rows: 0 affected rows: 0
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, 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; FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
...@@ -97,7 +91,7 @@ ...@@ -97,7 +91,7 @@
DROP TABLE t2, t1; DROP TABLE t2, t1;
affected rows: 0 affected rows: 0
CREATE TABLE t1(f1 INT NOT NULL, CREATE TABLE t1(f1 INT NOT NULL,
@@ -85,27 +85,27 @@ @@ -81,27 +81,27 @@
INSERT INTO t1(f1, f2) VALUES(1, 1); INSERT INTO t1(f1, f2) VALUES(1, 1);
# Add column at the end of the table # Add column at the end of the table
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
...@@ -135,7 +129,7 @@ ...@@ -135,7 +129,7 @@
# Column length varies # Column length varies
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
affected rows: 0 affected rows: 0
@@ -113,12 +113,12 @@ @@ -109,12 +109,12 @@
SET foreign_key_checks = 0; SET foreign_key_checks = 0;
affected rows: 0 affected rows: 0
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
......
--- alter_algorithm.result --- alter_algorithm.result
+++ alter_algorithm.reject +++ alter_algorithm.reject
@@ -7,44 +7,35 @@ @@ -7,40 +7,32 @@
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
SELECT @@alter_algorithm; SELECT @@alter_algorithm;
@@alter_algorithm @@alter_algorithm
...@@ -16,11 +16,6 @@ ...@@ -16,11 +16,6 @@
ALTER TABLE t1 MODIFY f2 INT; ALTER TABLE t1 MODIFY f2 INT;
-affected rows: 1 -affected rows: 1
-info: Records: 1 Duplicates: 0 Warnings: 0 -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 +Got one of the listed errors
# Drop Stored Column # Drop Stored Column
ALTER TABLE t1 DROP COLUMN f5; ALTER TABLE t1 DROP COLUMN f5;
...@@ -55,7 +50,7 @@ ...@@ -55,7 +50,7 @@
DROP TABLE t1; DROP TABLE t1;
affected rows: 0 affected rows: 0
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, 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; FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
...@@ -83,7 +78,7 @@ ...@@ -83,7 +78,7 @@
DROP TABLE t2, t1; DROP TABLE t2, t1;
affected rows: 0 affected rows: 0
CREATE TABLE t1(f1 INT NOT NULL, CREATE TABLE t1(f1 INT NOT NULL,
@@ -85,27 +71,27 @@ @@ -81,27 +68,27 @@
INSERT INTO t1(f1, f2) VALUES(1, 1); INSERT INTO t1(f1, f2) VALUES(1, 1);
# Add column at the end of the table # Add column at the end of the table
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
...@@ -121,7 +116,7 @@ ...@@ -121,7 +116,7 @@
# Column length varies # Column length varies
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
affected rows: 0 affected rows: 0
@@ -113,12 +99,12 @@ @@ -109,12 +96,12 @@
SET foreign_key_checks = 0; SET foreign_key_checks = 0;
affected rows: 0 affected rows: 0
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
......
--- alter_algorithm.result --- alter_algorithm.result
+++ alter_algorithm.reject +++ alter_algorithm.reject
@@ -7,44 +7,35 @@ @@ -7,40 +7,32 @@
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
SELECT @@alter_algorithm; SELECT @@alter_algorithm;
@@alter_algorithm @@alter_algorithm
...@@ -16,11 +16,6 @@ ...@@ -16,11 +16,6 @@
ALTER TABLE t1 MODIFY f2 INT; ALTER TABLE t1 MODIFY f2 INT;
-affected rows: 1 -affected rows: 1
-info: Records: 1 Duplicates: 0 Warnings: 0 -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 +Got one of the listed errors
# Drop Stored Column # Drop Stored Column
ALTER TABLE t1 DROP COLUMN f5; ALTER TABLE t1 DROP COLUMN f5;
...@@ -55,7 +50,7 @@ ...@@ -55,7 +50,7 @@
DROP TABLE t1; DROP TABLE t1;
affected rows: 0 affected rows: 0
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, 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; FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
...@@ -88,7 +83,7 @@ ...@@ -88,7 +83,7 @@
DROP TABLE t2, t1; DROP TABLE t2, t1;
affected rows: 0 affected rows: 0
CREATE TABLE t1(f1 INT NOT NULL, CREATE TABLE t1(f1 INT NOT NULL,
@@ -85,27 +76,27 @@ @@ -81,27 +73,27 @@
INSERT INTO t1(f1, f2) VALUES(1, 1); INSERT INTO t1(f1, f2) VALUES(1, 1);
# Add column at the end of the table # Add column at the end of the table
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
...@@ -126,7 +121,7 @@ ...@@ -126,7 +121,7 @@
# Column length varies # Column length varies
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
affected rows: 0 affected rows: 0
@@ -113,12 +104,12 @@ @@ -109,12 +101,12 @@
SET foreign_key_checks = 0; SET foreign_key_checks = 0;
affected rows: 0 affected rows: 0
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
......
...@@ -17,10 +17,6 @@ info: Records: 1 Duplicates: 0 Warnings: 0 ...@@ -17,10 +17,6 @@ info: Records: 1 Duplicates: 0 Warnings: 0
ALTER TABLE t1 MODIFY f2 INT; ALTER TABLE t1 MODIFY f2 INT;
affected rows: 1 affected rows: 1
info: Records: 1 Duplicates: 0 Warnings: 0 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 # Drop Stored Column
ALTER TABLE t1 DROP COLUMN f5; ALTER TABLE t1 DROP COLUMN f5;
affected rows: 1 affected rows: 1
......
...@@ -96,8 +96,8 @@ INSERT INTO t3 SET c=NULL; ...@@ -96,8 +96,8 @@ INSERT INTO t3 SET c=NULL;
SET @old_sql_mode = @@sql_mode; SET @old_sql_mode = @@sql_mode;
SET sql_mode = ''; SET sql_mode = '';
ALTER TABLE t1 MODIFY c INT NOT NULL; ALTER TABLE t1 MODIFY c INT NOT NULL;
affected rows: 0 affected rows: 1
info: Records: 0 Duplicates: 0 Warnings: 1 info: Records: 1 Duplicates: 0 Warnings: 1
Warnings: Warnings:
Warning 1265 Data truncated for column 'c' at row 1 Warning 1265 Data truncated for column 'c' at row 1
ALTER TABLE t2 MODIFY c INT NOT NULL; ALTER TABLE t2 MODIFY c INT NOT NULL;
...@@ -111,10 +111,9 @@ info: Records: 1 Duplicates: 0 Warnings: 1 ...@@ -111,10 +111,9 @@ info: Records: 1 Duplicates: 0 Warnings: 1
Warnings: Warnings:
Warning 1265 Data truncated for column 'c' at row 1 Warning 1265 Data truncated for column 'c' at row 1
SET sql_mode = @old_sql_mode; SET sql_mode = @old_sql_mode;
# MDEV-18819 FIXME: Wrong result g=NULL
SELECT * FROM t1; SELECT * FROM t1;
c g c g
0 NULL 0 0
SELECT * FROM t2; SELECT * FROM t2;
c v c v
0 0 0 0
...@@ -137,8 +136,8 @@ INSERT INTO t1 SET c=NULL; ...@@ -137,8 +136,8 @@ INSERT INTO t1 SET c=NULL;
INSERT INTO t2 SET c=NULL; INSERT INTO t2 SET c=NULL;
INSERT INTO t3 SET c=NULL; INSERT INTO t3 SET c=NULL;
ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL; ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL;
affected rows: 0 affected rows: 1
info: Records: 0 Duplicates: 0 Warnings: 1 info: Records: 1 Duplicates: 0 Warnings: 1
Warnings: Warnings:
Warning 1265 Data truncated for column 'c' at row 1 Warning 1265 Data truncated for column 'c' at row 1
ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL; ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL;
...@@ -151,10 +150,9 @@ affected rows: 1 ...@@ -151,10 +150,9 @@ affected rows: 1
info: Records: 1 Duplicates: 0 Warnings: 1 info: Records: 1 Duplicates: 0 Warnings: 1
Warnings: Warnings:
Warning 1265 Data truncated for column 'c' at row 1 Warning 1265 Data truncated for column 'c' at row 1
# MDEV-18819 FIXME: Wrong result g=NULL
SELECT * FROM t1; SELECT * FROM t1;
c g c g
0 NULL 0 0
SELECT * FROM t2; SELECT * FROM t2;
c v c v
0 0 0 0
...@@ -186,12 +184,11 @@ UPDATE t1 SET c=0; ...@@ -186,12 +184,11 @@ UPDATE t1 SET c=0;
UPDATE t2 SET c=0; UPDATE t2 SET c=0;
UPDATE t3 SET c=0; UPDATE t3 SET c=0;
ALTER TABLE t1 MODIFY c INT NOT NULL; ALTER TABLE t1 MODIFY c INT NOT NULL;
affected rows: 0 affected rows: 1
info: Records: 0 Duplicates: 0 Warnings: 0 info: Records: 1 Duplicates: 0 Warnings: 0
ALTER TABLE t2 MODIFY c INT NOT NULL; ALTER TABLE t2 MODIFY c INT NOT NULL;
affected rows: 0 affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 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; ALTER TABLE t3 MODIFY c INT NOT NULL;
affected rows: 1 affected rows: 1
info: Records: 1 Duplicates: 0 Warnings: 0 info: Records: 1 Duplicates: 0 Warnings: 0
......
...@@ -31,10 +31,6 @@ ALTER TABLE t1 ADD COLUMN col1 INT NOT NULL,DROP PRIMARY KEY,ADD PRIMARY KEY(col ...@@ -31,10 +31,6 @@ ALTER TABLE t1 ADD COLUMN col1 INT NOT NULL,DROP PRIMARY KEY,ADD PRIMARY KEY(col
--error $error_code --error $error_code
ALTER TABLE t1 MODIFY f2 INT; 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 --echo # Drop Stored Column
--error $error_code --error $error_code
ALTER TABLE t1 DROP COLUMN f5; ALTER TABLE t1 DROP COLUMN f5;
......
...@@ -104,7 +104,6 @@ ALTER TABLE t2 MODIFY c INT NOT NULL; ...@@ -104,7 +104,6 @@ ALTER TABLE t2 MODIFY c INT NOT NULL;
ALTER TABLE t3 MODIFY c INT NOT NULL; ALTER TABLE t3 MODIFY c INT NOT NULL;
--disable_info --disable_info
SET sql_mode = @old_sql_mode; SET sql_mode = @old_sql_mode;
--echo # MDEV-18819 FIXME: Wrong result g=NULL
SELECT * FROM t1; SELECT * FROM t1;
SELECT * FROM t2; SELECT * FROM t2;
SELECT * FROM t3; SELECT * FROM t3;
...@@ -123,7 +122,6 @@ ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL; ...@@ -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 t2 MODIFY c INT NOT NULL;
ALTER IGNORE TABLE t3 MODIFY c INT NOT NULL; ALTER IGNORE TABLE t3 MODIFY c INT NOT NULL;
--disable_info --disable_info
--echo # MDEV-18819 FIXME: Wrong result g=NULL
SELECT * FROM t1; SELECT * FROM t1;
SELECT * FROM t2; SELECT * FROM t2;
SELECT * FROM t3; SELECT * FROM t3;
...@@ -151,7 +149,6 @@ UPDATE t3 SET c=0; ...@@ -151,7 +149,6 @@ UPDATE t3 SET c=0;
--enable_info --enable_info
ALTER TABLE t1 MODIFY c INT NOT NULL; ALTER TABLE t1 MODIFY c INT NOT NULL;
ALTER TABLE t2 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; ALTER TABLE t3 MODIFY c INT NOT NULL;
--disable_info --disable_info
SELECT * FROM t1; SELECT * FROM t1;
......
...@@ -6733,7 +6733,7 @@ static bool fill_alter_inplace_info(THD *thd, TABLE *table, bool varchar, ...@@ -6733,7 +6733,7 @@ static bool fill_alter_inplace_info(THD *thd, TABLE *table, bool varchar,
} }
if (field->vcol_info->is_in_partitioning_expr() || 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) if (value_changes)
ha_alter_info->handler_flags|= ALTER_COLUMN_VCOL; ha_alter_info->handler_flags|= ALTER_COLUMN_VCOL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment