Merge pull request #13 from openark/unique-key-generated-column
Generated column as part of UNIQUE (or PRIMARY) KEY
This commit is contained in:
commit
253658d46b
@ -188,6 +188,10 @@ func (this *Inspector) inspectOriginalAndGhostTables() (err error) {
|
||||
}
|
||||
|
||||
for _, column := range this.migrationContext.UniqueKey.Columns.Columns() {
|
||||
if this.migrationContext.GhostTableVirtualColumns.GetColumn(column.Name) != nil {
|
||||
// this is a virtual column
|
||||
continue
|
||||
}
|
||||
if this.migrationContext.MappedSharedColumns.HasTimezoneConversion(column.Name) {
|
||||
return fmt.Errorf("No support at this time for converting a column from DATETIME to TIMESTAMP that is also part of the chosen unique key. Column: %s, key: %s", column.Name, this.migrationContext.UniqueKey.Name)
|
||||
}
|
||||
|
30
localtests/generated-columns57-unique/create.sql
Normal file
30
localtests/generated-columns57-unique/create.sql
Normal file
@ -0,0 +1,30 @@
|
||||
drop table if exists gh_ost_test;
|
||||
create table gh_ost_test (
|
||||
id int auto_increment,
|
||||
`idb` varchar(36) CHARACTER SET utf8mb4 GENERATED ALWAYS AS (json_unquote(json_extract(`jsonobj`,_utf8mb4'$._id'))) STORED NOT NULL,
|
||||
`jsonobj` json NOT NULL,
|
||||
PRIMARY KEY (`id`,`idb`)
|
||||
) auto_increment=1;
|
||||
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":2}');
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":3}');
|
||||
|
||||
drop event if exists gh_ost_test;
|
||||
delimiter ;;
|
||||
create event gh_ost_test
|
||||
on schedule every 1 second
|
||||
starts current_timestamp
|
||||
ends current_timestamp + interval 60 second
|
||||
on completion not preserve
|
||||
enable
|
||||
do
|
||||
begin
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":5}');
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":7}');
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":11}');
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":13}');
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":17}');
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":19}');
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":23}');
|
||||
insert into gh_ost_test (id, jsonobj) values (null, '{"_id":27}');
|
||||
end ;;
|
1
localtests/generated-columns57-unique/ignore_versions
Normal file
1
localtests/generated-columns57-unique/ignore_versions
Normal file
@ -0,0 +1 @@
|
||||
(5.5|5.6)
|
Loading…
Reference in New Issue
Block a user