summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb/t/default_row_format_create.test
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-12-13 21:25:12 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2018-12-13 21:25:12 +0200
commite3dda3d95ee4c09c2ed45ce886ecd25d1fc1ae92 (patch)
tree1c309791302a4c69526248a28a4b2e637f96f27d /mysql-test/suite/innodb/t/default_row_format_create.test
parent1a780eefc9ff8050b44bca07c981bd6a42bdbaf6 (diff)
downloadmariadb-git-e3dda3d95ee4c09c2ed45ce886ecd25d1fc1ae92.tar.gz
MDEV-17989 InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2)
With innodb_default_row_format=redundant, InnoDB would crash when using table options that are incompatible with ROW_FORMAT=REDUNDANT. create_table_info_t::m_default_row_format: Cache the value of innodb_default_row_format. create_table_info_t::check_table_options(): Validate ROW_TYPE_DEFAULT with m_default_row_format. create_table_info_t::innobase_table_flags(): Use the cached m_default_row_format. create_table_info_t: Never read m_form->s->row_type. Use m_create_info->row_type instead. dict_tf_set(): Never set invalid flags for ROW_FORMAT=REDUNDANT. ha_innobase::truncate(): Set info.row_type based on the ROW_FORMAT of the current table.
Diffstat (limited to 'mysql-test/suite/innodb/t/default_row_format_create.test')
-rw-r--r--mysql-test/suite/innodb/t/default_row_format_create.test20
1 files changed, 19 insertions, 1 deletions
diff --git a/mysql-test/suite/innodb/t/default_row_format_create.test b/mysql-test/suite/innodb/t/default_row_format_create.test
index e0981abf7eb..03a7ebd3752 100644
--- a/mysql-test/suite/innodb/t/default_row_format_create.test
+++ b/mysql-test/suite/innodb/t/default_row_format_create.test
@@ -22,7 +22,25 @@ SHOW TABLE STATUS LIKE 't1';
DROP TABLE t1;
CREATE TABLE t1(c1 TEXT,c2 BLOB) ENGINE=InnoDB
-ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
+ROW_FORMAT=COMPRESSED;
+--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 #
+SHOW TABLE STATUS LIKE 't1';
+TRUNCATE TABLE t1;
+--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 #
+SHOW TABLE STATUS LIKE 't1';
+DROP TABLE t1;
+
+--error 0,ER_CANT_CREATE_TABLE
+CREATE TABLE t1 (c1 INT) ENGINE=InnoDB page_compressed=1;
+--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 #
+SHOW TABLE STATUS LIKE 't1';
+DROP TABLE IF EXISTS t1;
+
+SET @save_format = @@GLOBAL.innodb_default_row_format;
+SET GLOBAL innodb_default_row_format = redundant;
+CREATE TABLE t1 (c1 INT) ENGINE=InnoDB;
+SET GLOBAL innodb_default_row_format = @save_format;
+TRUNCATE TABLE t1;
--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 #
SHOW TABLE STATUS LIKE 't1';
DROP TABLE t1;