Commit 3fd80d08 authored by Aleksey Midenkov's avatar Aleksey Midenkov

MDEV-27244 Table corruption upon adding serial data type

MDEV-25803 excluded some cases from key sort upon alter table. That
particularly depends on ALTER_ADD_INDEX flag. Creating a column of
SERIAL data type missed that flag. Though equivalent operation

  alter table t1 add x bigint unsigned not null auto_increment unique;

has ALTER_ADD_INDEX flag.
parent a65d01a4
......@@ -746,4 +746,13 @@ explain partitions select * from t1;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 pn # NULL NULL NULL NULL # #
drop table t1;
#
# MDEV-27244 Table corruption upon adding serial data type
#
create table t1 (f int, key(f)) with system versioning
partition by system_time limit 10 (partition p0 history, partition pn current);
alter table t1 add x serial;
alter table t1 add partition (partition p1 history);
alter table t1 add partition (partition p2 history);
drop table t1;
# End of 10.3 tests
......@@ -727,6 +727,16 @@ explain partitions select * from t1 for system_time as of '2000-01-01 02:00:00';
explain partitions select * from t1;
drop table t1;
--echo #
--echo # MDEV-27244 Table corruption upon adding serial data type
--echo #
create table t1 (f int, key(f)) with system versioning
partition by system_time limit 10 (partition p0 history, partition pn current);
alter table t1 add x serial;
alter table t1 add partition (partition p1 history);
alter table t1 add partition (partition p2 history);
drop table t1;
--echo # End of 10.3 tests
--source suite/versioning/common_finish.inc
......@@ -6783,6 +6783,7 @@ field_type_or_serial:
Lex->last_field->set_handler(&type_handler_longlong);
Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG
| UNSIGNED_FLAG | UNIQUE_KEY_FLAG;
Lex->alter_info.flags|= ALTER_ADD_INDEX;
}
opt_serial_attribute
;
......
......@@ -6625,6 +6625,7 @@ field_type_or_serial:
Lex->last_field->set_handler(&type_handler_longlong);
Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG
| UNSIGNED_FLAG | UNIQUE_KEY_FLAG;
Lex->alter_info.flags|= ALTER_ADD_INDEX;
}
opt_serial_attribute
;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment