From e3f44d8d0eb0277312391686672f81a460094917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Tue, 2 Apr 2019 16:40:27 +0300 Subject: [PATCH] MDEV-19085: Remove a bogus debug assertion MariaDB does support InnoDB tables with no stored columns. (They are necessarily empty.) --- mysql-test/suite/gcol/r/innodb_virtual_basic.result | 10 ++++++++++ mysql-test/suite/gcol/t/innodb_virtual_basic.test | 8 ++++++++ storage/innobase/handler/handler0alter.cc | 1 - 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/gcol/r/innodb_virtual_basic.result b/mysql-test/suite/gcol/r/innodb_virtual_basic.result index 4c7a95b6498..8ac46c34265 100644 --- a/mysql-test/suite/gcol/r/innodb_virtual_basic.result +++ b/mysql-test/suite/gcol/r/innodb_virtual_basic.result @@ -1485,3 +1485,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 674698e77c4..27172dce020 100644 --- a/mysql-test/suite/gcol/t/innodb_virtual_basic.test +++ b/mysql-test/suite/gcol/t/innodb_virtual_basic.test @@ -1429,3 +1429,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 bfbe70a0fda..66ad1d07d60 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -3022,7 +3022,6 @@ innobase_build_col_map( & Alter_inplace_info::ADD_COLUMN)); DBUG_ASSERT(!add_cols || dtuple_get_n_fields(add_cols) == 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);