mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 02:30:06 +01:00
88edb1b3ed
When MariaDB 10.1.0 introduced table options for encryption and compression, it unnecessarily changed ha_innobase::check_if_supported_inplace_alter() so that ALGORITHM=COPY is forced when these parameters differ. A better solution is to move the check to innobase_need_rebuild(). In that way, the ALGORITHM=INPLACE interface (yes, the syntax is very misleading) can be used for rebuilding the table much more efficiently, with merge sort, with no undo logging, and allowing concurrent DML operations.
39 lines
1.1 KiB
Text
39 lines
1.1 KiB
Text
-- source include/have_innodb.inc
|
|
-- source include/have_partition.inc
|
|
-- source include/have_example_key_management_plugin.inc
|
|
|
|
select @@innodb_encrypt_tables;
|
|
|
|
create table t1 (a int) engine=innodb encrypted=yes;
|
|
create table t2 (a int) engine=innodb encrypted=default;
|
|
--error ER_CANT_CREATE_TABLE
|
|
create table t3 (a int) engine=innodb encrypted=no;
|
|
|
|
create table t4 (a int) engine=innodb encrypted=yes partition by hash(a) partitions 2;
|
|
--error ER_CANT_CREATE_TABLE
|
|
create table t5 (a int) engine=innodb encrypted=no partition by hash(a) partitions 2;
|
|
|
|
set global innodb_encrypt_tables='ON';
|
|
create table t3 (a int) engine=innodb encrypted=no;
|
|
set global innodb_encrypt_tables='FORCE';
|
|
|
|
show create table t1;
|
|
show create table t2;
|
|
show create table t3;
|
|
show create table t4;
|
|
|
|
--error ER_ILLEGAL_HA_CREATE_OPTION
|
|
alter table t1 encrypted=no;
|
|
alter table t2 encrypted=yes;
|
|
alter table t3 encrypted=default;
|
|
--error ER_ILLEGAL_HA_CREATE_OPTION
|
|
alter table t4 encrypted=no;
|
|
|
|
show create table t1;
|
|
show create table t2;
|
|
show create table t3;
|
|
|
|
drop table t1;
|
|
drop table t2;
|
|
drop table t3;
|
|
drop table t4;
|