mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-17831 TRUNCATE TABLE removes ROW_FORMAT=COMPRESSED
If a table had a KEY_BLOCK_SIZE attribute, but no ROW_FORMAT, it would be created as ROW_FORMAT=COMPRESSED in InnoDB. However, TRUNCATE TABLE would lose the KEY_BLOCK_SIZE attribute and create the table with the innodb_default_row_format (DYNAMIC). This is a regression that was introduced by MDEV-13564. update_create_info_from_table(): Copy also KEY_BLOCK_SIZE.
This commit is contained in:
@ -18,3 +18,12 @@ SELECT * FROM t1;
|
|||||||
c
|
c
|
||||||
character
|
character
|
||||||
DROP TABLE t1;
|
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
|
||||||
|
t1 InnoDB # Compressed # # # # # # 1 # # NULL latin1_swedish_ci NULL key_block_size=4
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -27,3 +27,12 @@ ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
|
|||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE 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;
|
||||||
|
@ -3830,6 +3830,7 @@ void update_create_info_from_table(HA_CREATE_INFO *create_info, TABLE *table)
|
|||||||
create_info->table_options= share->db_create_options;
|
create_info->table_options= share->db_create_options;
|
||||||
create_info->avg_row_length= share->avg_row_length;
|
create_info->avg_row_length= share->avg_row_length;
|
||||||
create_info->row_type= share->row_type;
|
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->default_table_charset= share->table_charset;
|
||||||
create_info->table_charset= 0;
|
create_info->table_charset= 0;
|
||||||
create_info->comment= share->comment;
|
create_info->comment= share->comment;
|
||||||
|
Reference in New Issue
Block a user