mirror of
https://github.com/MariaDB/server.git
synced 2025-08-30 11:22:14 +03:00
The test was populating unnecessarily large tables and restarting the server several times for no real reason. Let us hope that a smaller version of the test will produce more stable results. Occasionally, some unencrypted contents in the table t2 was revealed in the old test.
119 lines
3.1 KiB
Plaintext
119 lines
3.1 KiB
Plaintext
CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY, a VARCHAR(255)) ENGINE=InnoDB encrypted=yes;
|
|
CREATE TABLE t2 (id INT NOT NULL PRIMARY KEY, a VARCHAR(255)) ENGINE=InnoDB;
|
|
CREATE TABLE t3 (id INT NOT NULL PRIMARY KEY, a VARCHAR(255)) ENGINE=InnoDB row_format=compressed encrypted=yes;
|
|
create procedure innodb_insert_proc (repeat_count int)
|
|
begin
|
|
declare current_num int;
|
|
set current_num = 0;
|
|
while current_num < repeat_count do
|
|
insert into t1 values (current_num,repeat('foobar',42));
|
|
insert into t2 values (current_num,repeat('temp', 42));
|
|
insert into t3 values (current_num,repeat('barfoo',42));
|
|
set current_num = current_num + 1;
|
|
end while;
|
|
end//
|
|
commit;
|
|
begin;
|
|
set statement unique_checks=0, foreign_key_checks=0 for
|
|
call innodb_insert_proc(100);
|
|
commit;
|
|
DROP PROCEDURE innodb_insert_proc;
|
|
# Wait max 10 min for key encryption threads to encrypt all spaces
|
|
FLUSH TABLES t1, t2, t3 FOR EXPORT;
|
|
# tablespaces should be now encrypted
|
|
# t1 yes on expecting NOT FOUND
|
|
NOT FOUND /foobar/ in t1.ibd
|
|
# t2 ... on expecting NOT FOUND
|
|
NOT FOUND /temp/ in t2.ibd
|
|
# t3 ... on expecting NOT FOUND
|
|
NOT FOUND /barfoo/ in t3.ibd
|
|
db.opt
|
|
t1.cfg
|
|
t1.frm
|
|
t1.ibd
|
|
t2.cfg
|
|
t2.frm
|
|
t2.ibd
|
|
t3.cfg
|
|
t3.frm
|
|
t3.ibd
|
|
backup: t1
|
|
backup: t2
|
|
backup: t3
|
|
db.opt
|
|
t1.cfg
|
|
t1.frm
|
|
t1.ibd
|
|
t2.cfg
|
|
t2.frm
|
|
t2.ibd
|
|
t3.cfg
|
|
t3.frm
|
|
t3.ibd
|
|
UNLOCK TABLES;
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
ALTER TABLE t2 DISCARD TABLESPACE;
|
|
ALTER TABLE t3 DISCARD TABLESPACE;
|
|
restore: t1 .ibd and .cfg files
|
|
restore: t2 .ibd and .cfg files
|
|
restore: t3 .ibd and .cfg files
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
100
|
|
ALTER TABLE t2 IMPORT TABLESPACE;
|
|
SELECT COUNT(*) FROM t2;
|
|
COUNT(*)
|
|
100
|
|
ALTER TABLE t3 IMPORT TABLESPACE;
|
|
SELECT COUNT(*) FROM t3;
|
|
COUNT(*)
|
|
100
|
|
FLUSH TABLES t1, t2, t3 FOR EXPORT;
|
|
# tablespaces should remain encrypted after import
|
|
# t1 yes on expecting NOT FOUND
|
|
NOT FOUND /foobar/ in t1.ibd
|
|
# t2 ... on expecting NOT FOUND
|
|
NOT FOUND /temp/ in t2.ibd
|
|
# t3 ... on expecting NOT FOUND
|
|
NOT FOUND /barfoo/ in t3.ibd
|
|
UNLOCK TABLES;
|
|
ALTER TABLE t1 FORCE;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`id` int(11) NOT NULL,
|
|
`a` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci `encrypted`=yes
|
|
ALTER TABLE t2 FORCE;
|
|
SHOW CREATE TABLE t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`id` int(11) NOT NULL,
|
|
`a` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
ALTER TABLE t3 FORCE;
|
|
SHOW CREATE TABLE t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`id` int(11) NOT NULL,
|
|
`a` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=COMPRESSED `encrypted`=yes
|
|
# Verify that tables are still usable
|
|
CHECK TABLE t1, t2, t3 EXTENDED;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
test.t2 check status OK
|
|
test.t3 check status OK
|
|
FLUSH TABLES t1, t2, t3 FOR EXPORT;
|
|
# t1 yes on expecting NOT FOUND
|
|
NOT FOUND /foobar/ in t1.ibd
|
|
# t2 ... on expecting NOT FOUND
|
|
NOT FOUND /temp/ in t2.ibd
|
|
# t3 ... on expecting NOT FOUND
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1, t2, t3;
|