mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-14632 Assertion `!((new_col->prtype ^ col->prtype) & ~256U)' failed in row_log_table_apply_convert_mrec
ha_innobase::check_if_supported_inplace_alter(): enabled non-rebuilding operations for trx_id-based system-versioning tables Also added better error message for not implemented operations.
This commit is contained in:
@ -1,32 +1,38 @@
|
||||
set system_versioning_alter_history=keep;
|
||||
create or replace table t (a int) engine=innodb;
|
||||
create or replace table t (a int, b int) engine=innodb;
|
||||
alter table t add system versioning, lock=none;
|
||||
ERROR 0A000: LOCK=NONE is not supported for this operation. Try LOCK=SHARED
|
||||
alter table t add system versioning;
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Not implemented for system-versioned tables. Try LOCK=SHARED
|
||||
alter table t add system versioning, lock=shared;
|
||||
alter table t drop column b, lock=none;
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Not implemented for system-versioned tables. Try LOCK=SHARED
|
||||
alter table t drop column b, algorithm=inplace;
|
||||
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned tables. Try ALGORITHM=COPY
|
||||
alter table t add index idx(a), lock=none;
|
||||
ERROR 0A000: LOCK=NONE is not supported for this operation. Try LOCK=SHARED
|
||||
alter table t drop system versioning, lock=none;
|
||||
ERROR 0A000: LOCK=NONE is not supported for this operation. Try LOCK=SHARED
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Not implemented for system-versioned tables. Try LOCK=SHARED
|
||||
alter table t drop system versioning, algorithm=inplace;
|
||||
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Not implemented for system-versioned tables. Try ALGORITHM=COPY
|
||||
set global system_versioning_transaction_registry=on;
|
||||
Warnings:
|
||||
Warning 4144 Transaction-based system versioning is EXPERIMENTAL and is subject to change in future.
|
||||
create or replace table t (a int) engine=innodb;
|
||||
create or replace table t (a int, b int) engine=innodb;
|
||||
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;
|
||||
ERROR 0A000: LOCK=NONE is not supported for this operation. Try LOCK=SHARED
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Not implemented for system-versioned tables. Try LOCK=SHARED
|
||||
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;
|
||||
alter table t drop column b, lock=none;
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Not implemented for system-versioned tables. Try LOCK=SHARED
|
||||
alter table t add index idx(a), lock=none;
|
||||
ERROR 0A000: LOCK=NONE is not supported for this operation. Try LOCK=SHARED
|
||||
alter table t drop column s, drop column e;
|
||||
alter table t drop system versioning, lock=none;
|
||||
ERROR 0A000: LOCK=NONE is not supported for this operation. Try LOCK=SHARED
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Not implemented for system-versioned tables. Try LOCK=SHARED
|
||||
set global system_versioning_transaction_registry=off;
|
||||
drop table t;
|
||||
|
@ -2,21 +2,26 @@
|
||||
|
||||
set system_versioning_alter_history=keep;
|
||||
|
||||
create or replace table t (a int) engine=innodb;
|
||||
create or replace table t (a int, b int) engine=innodb;
|
||||
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
alter table t add system versioning, lock=none;
|
||||
alter table t add system versioning;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
alter table t add system versioning, lock=shared;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
alter table t drop column b, lock=none;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
alter table t drop column b, algorithm=inplace;
|
||||
alter table t add index idx(a), lock=none;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
alter table t drop system versioning, lock=none;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
alter table t drop system versioning, algorithm=inplace;
|
||||
|
||||
|
||||
set global system_versioning_transaction_registry=on;
|
||||
create or replace table t (a int) engine=innodb;
|
||||
create or replace table t (a int, b int) engine=innodb;
|
||||
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
alter table t
|
||||
add s bigint unsigned as row start,
|
||||
add e bigint unsigned as row end,
|
||||
@ -28,10 +33,11 @@ alter table t
|
||||
add e bigint unsigned as row end,
|
||||
add period for system_time(s, e),
|
||||
add system versioning;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
alter table t drop column b, lock=none;
|
||||
alter table t add index idx(a), lock=none;
|
||||
alter table t drop column s, drop column e;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
alter table t drop system versioning, lock=none;
|
||||
|
||||
set global system_versioning_transaction_registry=off;
|
||||
|
Reference in New Issue
Block a user