1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-14632 Assertion `!((new_col->prtype ^ col->prtype) & ~256U)' failed in row_log_table_apply_convert_mrec

SQL, IB: proper fix is to disable unimplemented Online DDL for system-versioned tables inside InnoDB
This commit is contained in:
Eugene Kosov
2017-12-20 19:42:15 +03:00
committed by GitHub
parent b13f1cc59a
commit 4bc268d406
10 changed files with 118 additions and 54 deletions

View File

@@ -198,11 +198,12 @@ show create table t;
select * from t for system_time all;
call verify_vtq;
alter table t drop system versioning, algorithm=inplace;
call verify_vtq;
## FIXME: #414 IB: inplace for VERS_TIMESTAMP versioning
if (0)
{
alter table t drop system versioning, algorithm=inplace;
call verify_vtq;
alter table t add system versioning, algorithm=inplace;
call verify_vtq;
show create table t;
@@ -220,7 +221,6 @@ alter table t drop column b, algorithm=inplace;
show create table t;
select * from t for system_time all;
}
alter table t add system versioning;
## FIXME END
alter table t drop system versioning, algorithm=copy;

View File

@@ -0,0 +1,39 @@
--source include/have_innodb.inc
set system_versioning_alter_history=keep;
create or replace table t (a int) engine=innodb;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t add system versioning, lock=none;
alter table t add system versioning;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t add index idx(a), lock=none;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t drop system versioning, lock=none;
set global system_versioning_transaction_registry=on;
create or replace table t (a int) engine=innodb;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t
add s bigint unsigned as row start,
add e bigint unsigned as row end,
add period for system_time(s, e),
add system versioning,
lock=none;
alter table t
add s bigint unsigned as row start,
add e bigint unsigned as row end,
add period for system_time(s, e),
add system versioning;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t add index idx(a), lock=none;
alter table t drop column s, drop column e;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t drop system versioning, lock=none;
set global system_versioning_transaction_registry=off;
drop table t;