diff --git a/mysql-test/suite/gcol/r/innodb_virtual_basic.result b/mysql-test/suite/gcol/r/innodb_virtual_basic.result index e886559a06c..d4c65f96e59 100644 --- a/mysql-test/suite/gcol/r/innodb_virtual_basic.result +++ b/mysql-test/suite/gcol/r/innodb_virtual_basic.result @@ -1483,3 +1483,13 @@ SELECT * FROM t1; a b f1 DROP TABLE t1; +CREATE TABLE t1 (a INT GENERATED ALWAYS AS(1) VIRTUAL) ENGINE=InnoDB; +ALTER TABLE t1 ADD b INT GENERATED ALWAYS AS (2) VIRTUAL; +ALTER TABLE t1 ADD c INT; +SELECT * FROM t1; +a b c +INSERT INTO t1 SET c=3; +SELECT * FROM t1; +a b c +1 2 3 +DROP TABLE t1; diff --git a/mysql-test/suite/gcol/t/innodb_virtual_basic.test b/mysql-test/suite/gcol/t/innodb_virtual_basic.test index aa2e1e00c8f..72f4c6dc8c4 100644 --- a/mysql-test/suite/gcol/t/innodb_virtual_basic.test +++ b/mysql-test/suite/gcol/t/innodb_virtual_basic.test @@ -1430,3 +1430,11 @@ INSERT INTO t1(a) VALUES (''); ALTER TABLE t1 CHANGE COLUMN a a VARCHAR(85); SELECT * FROM t1; DROP TABLE t1; + +CREATE TABLE t1 (a INT GENERATED ALWAYS AS(1) VIRTUAL) ENGINE=InnoDB; +ALTER TABLE t1 ADD b INT GENERATED ALWAYS AS (2) VIRTUAL; +ALTER TABLE t1 ADD c INT; +SELECT * FROM t1; +INSERT INTO t1 SET c=3; +SELECT * FROM t1; +DROP TABLE t1; diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 86aec022651..3a3f01e92c9 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -3280,7 +3280,6 @@ innobase_build_col_map( & INNOBASE_DEFAULTS)); DBUG_ASSERT(!defaults || dtuple_get_n_fields(defaults) == dict_table_get_n_cols(new_table)); - DBUG_ASSERT(table->s->stored_fields > 0); const uint old_n_v_cols = uint(table->s->fields - table->s->stored_fields);