diff --git a/mysql-test/suite/encryption/r/encryption_force.result b/mysql-test/suite/encryption/r/encryption_force.result index 8e129899275..de5f7da60a8 100644 --- a/mysql-test/suite/encryption/r/encryption_force.result +++ b/mysql-test/suite/encryption/r/encryption_force.result @@ -5,6 +5,9 @@ create table t1 (a int) engine=innodb encrypted=yes; create table t2 (a int) engine=innodb encrypted=default; create table t3 (a int) engine=innodb encrypted=no; ERROR HY000: Can't create table `test`.`t3` (errno: 140 "Wrong create options") +create table t4 (a int) engine=innodb encrypted=yes partition by hash(a) partitions 2; +create table t5 (a int) engine=innodb encrypted=no partition by hash(a) partitions 2; +ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options") set global innodb_encrypt_tables='ON'; create table t3 (a int) engine=innodb encrypted=no; set global innodb_encrypt_tables='FORCE'; @@ -23,10 +26,19 @@ Table Create Table t3 CREATE TABLE `t3` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 `encrypted`=no +show create table t4; +Table Create Table +t4 CREATE TABLE `t4` ( + `a` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 `encrypted`=yes +/*!50100 PARTITION BY HASH (a) +PARTITIONS 2 */ alter table t1 encrypted=no; ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options") alter table t2 encrypted=yes; alter table t3 encrypted=default; +alter table t4 encrypted=no; +ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options") show create table t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -45,3 +57,4 @@ t3 CREATE TABLE `t3` ( drop table t1; drop table t2; drop table t3; +drop table t4; diff --git a/mysql-test/suite/encryption/t/encryption_force.test b/mysql-test/suite/encryption/t/encryption_force.test index 71ca23ff3cc..3e09dd91839 100644 --- a/mysql-test/suite/encryption/t/encryption_force.test +++ b/mysql-test/suite/encryption/t/encryption_force.test @@ -1,4 +1,5 @@ -- source include/have_innodb.inc +-- source include/have_partition.inc -- source include/have_example_key_management_plugin.inc select @@innodb_encrypt_tables; @@ -8,6 +9,10 @@ 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'; @@ -15,12 +20,16 @@ set global innodb_encrypt_tables='FORCE'; show create table t1; show create table t2; show create table t3; +show create table t4; --replace_regex /#sql-[0-9a-f_]*/#sql-temporary/ --error ER_CANT_CREATE_TABLE alter table t1 encrypted=no; alter table t2 encrypted=yes; alter table t3 encrypted=default; +--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/ +--error ER_CANT_CREATE_TABLE +alter table t4 encrypted=no; show create table t1; show create table t2; @@ -29,3 +38,4 @@ show create table t3; drop table t1; drop table t2; drop table t3; +drop table t4; diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index f0f109f4872..4cb912cd023 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -267,7 +267,7 @@ ha_innobase::check_if_supported_inplace_alter( /* Change on engine specific table options require rebuild of the table */ if (ha_alter_info->handler_flags - == Alter_inplace_info::CHANGE_CREATE_OPTION) { + & Alter_inplace_info::CHANGE_CREATE_OPTION) { ha_table_option_struct *new_options= ha_alter_info->create_info->option_struct; ha_table_option_struct *old_options= table->s->option_struct; diff --git a/storage/xtradb/handler/handler0alter.cc b/storage/xtradb/handler/handler0alter.cc index ccdba2a8dfb..32b1fcf4b79 100644 --- a/storage/xtradb/handler/handler0alter.cc +++ b/storage/xtradb/handler/handler0alter.cc @@ -271,7 +271,7 @@ ha_innobase::check_if_supported_inplace_alter( /* Change on engine specific table options require rebuild of the table */ if (ha_alter_info->handler_flags - == Alter_inplace_info::CHANGE_CREATE_OPTION) { + & Alter_inplace_info::CHANGE_CREATE_OPTION) { ha_table_option_struct *new_options= ha_alter_info->create_info->option_struct; ha_table_option_struct *old_options= table->s->option_struct;