summaryrefslogtreecommitdiff
path: root/mysql-test/suite/parts/t/engine_defined_part_attributes.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/parts/t/engine_defined_part_attributes.test')
-rw-r--r--mysql-test/suite/parts/t/engine_defined_part_attributes.test169
1 files changed, 169 insertions, 0 deletions
diff --git a/mysql-test/suite/parts/t/engine_defined_part_attributes.test b/mysql-test/suite/parts/t/engine_defined_part_attributes.test
new file mode 100644
index 00000000000..8d08f4654cc
--- /dev/null
+++ b/mysql-test/suite/parts/t/engine_defined_part_attributes.test
@@ -0,0 +1,169 @@
+--echo #
+--echo # MDEV-5271 Support engine-defined attributes per partition
+--echo #
+
+--source include/have_partition.inc
+--source include/have_innodb.inc
+
+--echo # partitioned tables
+
+CREATE TABLE `t1` (
+ `id` INT
+) ENGINE=InnoDB ENCRYPTED="YES" PARTITION BY RANGE(id) (
+ PARTITION pt1 VALUES LESS THAN (100) ENCRYPTED="NO" ENCRYPTION_KEY_ID=1,
+ PARTITION pt2 VALUES LESS THAN MAXVALUE ENCRYPTED="DEFAULT" ENCRYPTION_KEY_ID=1
+);
+SHOW CREATE TABLE `t1`;
+
+INSERT INTO t1 VALUES (1), (2), (3);
+DELETE FROM t1 WHERE id = 1;
+UPDATE t1 SET id = 4 WHERE id = 3;
+SELECT * FROM t1 WHERE id IN (2, 3);
+
+DROP TABLE `t1`;
+
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE `t2` (
+ `id` INT
+) ENGINE=InnoDB ENCRYPTED="YES" ENCRYPTION_KEY_ID=2 PARTITION BY RANGE(id) (
+ PARTITION pt1 VALUES LESS THAN (100),
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+);
+
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE `t3` (
+ `id` INT
+) ENGINE=InnoDB ENCRYPTED="NO" PARTITION BY RANGE(id) (
+ PARTITION pt1 VALUES LESS THAN (100) ENCRYPTED="YES" ENCRYPTION_KEY_ID=2,
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+);
+
+CREATE TABLE `t4` (
+ `id` INT
+) ENGINE=InnoDB ENCRYPTED="NO";
+SHOW CREATE TABLE `t4`;
+
+ALTER TABLE `t4` PARTITION BY RANGE(id) (
+ PARTITION pt1 VALUES LESS THAN (100) ENCRYPTED="NO",
+ PARTITION pt2 VALUES LESS THAN MAXVALUE ENCRYPTED="DEFAULT"
+);
+SHOW CREATE TABLE `t4`;
+
+ALTER TABLE `t4` PARTITION BY RANGE(id) (
+ PARTITION pt1 VALUES LESS THAN (100),
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+);
+SHOW CREATE TABLE `t4`;
+
+--error ER_CANT_CREATE_TABLE
+ALTER TABLE `t4` PARTITION BY RANGE(id) (
+ PARTITION pt1 VALUES LESS THAN (100) ENCRYPTED="YES" ENCRYPTION_KEY_ID=2,
+ PARTITION pt2 VALUES LESS THAN MAXVALUE ENCRYPTED="DEFAULT"
+);
+
+DROP TABLE `t4`;
+
+--echo # subpartitioned tables
+
+CREATE TABLE `t5` (
+ `id` INT
+) ENGINE=InnoDB ENCRYPTED="NO" PARTITION BY RANGE(id)
+SUBPARTITION BY HASH(id)
+SUBPARTITIONS 2 (
+ PARTITION pt1 VALUES LESS THAN (100),
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+);
+SHOW CREATE TABLE `t5`;
+
+DROP TABLE `t5`;
+
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE `t6` (
+ `id` INT
+) ENGINE=InnoDB PARTITION BY RANGE(id)
+SUBPARTITION BY HASH(id)
+SUBPARTITIONS 2 (
+ PARTITION pt1 VALUES LESS THAN (100) ENCRYPTED="YES",
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+);
+
+--error ER_PARSE_ERROR
+CREATE TABLE `t7` (
+ id INT
+) ENGINE=InnoDB PARTITION BY RANGE(id)
+SUBPARTITION BY HASH(id) (
+ PARTITION pt1 VALUES LESS THAN (100)(
+ SUBPARTITION spt1 ENCRYPTED="NO",
+ SUBPARTITION spt2
+ ),
+ PARTITION pt2 VALUES LESS THAN MAXVALUE (
+ SUBPARTITION spt3,
+ SUBPARTITION spt4
+ )
+);
+
+CREATE TABLE `t8` (
+ id INT
+) ENGINE=InnoDB ENCRYPTED="NO" PARTITION BY RANGE(id)
+SUBPARTITION BY HASH(id) (
+ PARTITION pt1 VALUES LESS THAN (100) (
+ SUBPARTITION spt1,
+ SUBPARTITION spt2
+ ),
+ PARTITION pt2 VALUES LESS THAN MAXVALUE (
+ SUBPARTITION spt3,
+ SUBPARTITION spt4
+ )
+);
+SHOW CREATE TABLE `t8`;
+
+DROP TABLE `t8`;
+
+CREATE TABLE `t9` (
+ id INT
+) ENGINE=InnoDB PARTITION BY RANGE(id)
+SUBPARTITION BY HASH(id) (
+ PARTITION pt1 VALUES LESS THAN (100) ENCRYPTED="NO" (
+ SUBPARTITION spt1,
+ SUBPARTITION spt2
+ ),
+ PARTITION pt2 VALUES LESS THAN MAXVALUE (
+ SUBPARTITION spt3,
+ SUBPARTITION spt4
+ )
+);
+SHOW CREATE TABLE `t9`;
+
+DROP TABLE `t9`;
+
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE `t10` (
+ id INT
+) ENGINE=InnoDB PARTITION BY RANGE(id)
+SUBPARTITION BY HASH(id) (
+ PARTITION pt1 VALUES LESS THAN (100) ENCRYPTED="YES" (
+ SUBPARTITION spt1,
+ SUBPARTITION spt2
+ ),
+ PARTITION pt2 VALUES LESS THAN MAXVALUE (
+ SUBPARTITION spt3,
+ SUBPARTITION spt4
+ )
+);
+
+CREATE TABLE `t11` (
+ id INT
+) ENGINE=InnoDB ENCRYPTED="YES" PARTITION BY RANGE(id)
+SUBPARTITION BY HASH(id) (
+ PARTITION pt1 VALUES LESS THAN (100) ENCRYPTED="NO" (
+ SUBPARTITION spt1,
+ SUBPARTITION spt2
+ ),
+ PARTITION pt2 VALUES LESS THAN MAXVALUE ENCRYPTED="NO" (
+ SUBPARTITION spt3,
+ SUBPARTITION spt4
+ )
+);
+SHOW CREATE TABLE `t11`;
+
+DROP TABLE `t11`;