diff --git a/mysql-test/suite/innodb/r/truncate.result b/mysql-test/suite/innodb/r/truncate.result index c8a81256d79..f389c351d70 100644 --- a/mysql-test/suite/innodb/r/truncate.result +++ b/mysql-test/suite/innodb/r/truncate.result @@ -18,3 +18,12 @@ SELECT * FROM t1; c character DROP TABLE t1; +# +# MDEV-17831 TRUNCATE TABLE removes ROW_FORMAT=COMPRESSED +# +CREATE TABLE t1 (a SERIAL) ENGINE=InnoDB KEY_BLOCK_SIZE=4; +TRUNCATE TABLE t1; +SHOW TABLE STATUS; +Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary +t1 InnoDB # Compressed # # # # # # 1 # # NULL latin1_swedish_ci NULL key_block_size=4 0 N +DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/truncate.test b/mysql-test/suite/innodb/t/truncate.test index f0cfd3a5be1..16a3b06a8ae 100644 --- a/mysql-test/suite/innodb/t/truncate.test +++ b/mysql-test/suite/innodb/t/truncate.test @@ -27,3 +27,12 @@ ALTER TABLE t1 ROW_FORMAT=REDUNDANT; TRUNCATE TABLE t1; SELECT * FROM t1; DROP TABLE t1; + +--echo # +--echo # MDEV-17831 TRUNCATE TABLE removes ROW_FORMAT=COMPRESSED +--echo # +CREATE TABLE t1 (a SERIAL) ENGINE=InnoDB KEY_BLOCK_SIZE=4; +TRUNCATE TABLE t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # +SHOW TABLE STATUS; +DROP TABLE t1; diff --git a/sql/table.cc b/sql/table.cc index 1e09bb83210..ce7a34a8fe2 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -3928,6 +3928,7 @@ void update_create_info_from_table(HA_CREATE_INFO *create_info, TABLE *table) create_info->table_options= share->db_create_options; create_info->avg_row_length= share->avg_row_length; create_info->row_type= share->row_type; + create_info->key_block_size= share->key_block_size; create_info->default_table_charset= share->table_charset; create_info->table_charset= 0; create_info->comment= share->comment;