mirror of
https://github.com/MariaDB/server.git
synced 2025-08-27 13:04:36 +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.
127 lines
3.8 KiB
Plaintext
127 lines
3.8 KiB
Plaintext
-- source include/have_innodb.inc
|
|
-- source include/have_example_key_management_plugin.inc
|
|
-- source include/not_valgrind.inc
|
|
-- source include/not_embedded.inc
|
|
|
|
let MYSQLD_DATADIR = `SELECT @@datadir`;
|
|
|
|
--let SEARCH_RANGE = 10000000
|
|
--let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd
|
|
--let t2_IBD = $MYSQLD_DATADIR/test/t2.ibd
|
|
--let t3_IBD = $MYSQLD_DATADIR/test/t3.ibd
|
|
|
|
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;
|
|
|
|
delimiter //;
|
|
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//
|
|
delimiter ;//
|
|
commit;
|
|
|
|
begin;
|
|
set statement unique_checks=0, foreign_key_checks=0 for
|
|
call innodb_insert_proc(100);
|
|
commit;
|
|
DROP PROCEDURE innodb_insert_proc;
|
|
|
|
--echo # Wait max 10 min for key encryption threads to encrypt all spaces
|
|
--let $wait_timeout= 600
|
|
--let $wait_condition=SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND ROTATING_OR_FLUSHING <> 0
|
|
--source include/wait_condition.inc
|
|
|
|
FLUSH TABLES t1, t2, t3 FOR EXPORT;
|
|
--echo # tablespaces should be now encrypted
|
|
--let SEARCH_PATTERN=foobar
|
|
--echo # t1 yes on expecting NOT FOUND
|
|
-- let SEARCH_FILE=$t1_IBD
|
|
-- source include/search_pattern_in_file.inc
|
|
--let SEARCH_PATTERN=temp
|
|
--echo # t2 ... on expecting NOT FOUND
|
|
-- let SEARCH_FILE=$t2_IBD
|
|
-- source include/search_pattern_in_file.inc
|
|
--let SEARCH_PATTERN=barfoo
|
|
--echo # t3 ... on expecting NOT FOUND
|
|
-- let SEARCH_FILE=$t3_IBD
|
|
-- source include/search_pattern_in_file.inc
|
|
|
|
let MYSQLD_DATADIR =`SELECT @@datadir`;
|
|
--list_files $MYSQLD_DATADIR/test
|
|
perl;
|
|
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
|
|
ib_backup_tablespaces("test", "t1","t2","t3");
|
|
EOF
|
|
--list_files $MYSQLD_DATADIR/test
|
|
UNLOCK TABLES;
|
|
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
ALTER TABLE t2 DISCARD TABLESPACE;
|
|
ALTER TABLE t3 DISCARD TABLESPACE;
|
|
|
|
perl;
|
|
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
|
|
ib_discard_tablespaces("test", "t1","t2","t3");
|
|
ib_restore_tablespaces("test", "t1","t2","t3");
|
|
EOF
|
|
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
SELECT COUNT(*) FROM t1;
|
|
ALTER TABLE t2 IMPORT TABLESPACE;
|
|
SELECT COUNT(*) FROM t2;
|
|
ALTER TABLE t3 IMPORT TABLESPACE;
|
|
SELECT COUNT(*) FROM t3;
|
|
|
|
FLUSH TABLES t1, t2, t3 FOR EXPORT;
|
|
|
|
--echo # tablespaces should remain encrypted after import
|
|
--let SEARCH_PATTERN=foobar
|
|
--echo # t1 yes on expecting NOT FOUND
|
|
-- let SEARCH_FILE=$t1_IBD
|
|
-- source include/search_pattern_in_file.inc
|
|
--let SEARCH_PATTERN=temp
|
|
--echo # t2 ... on expecting NOT FOUND
|
|
-- let SEARCH_FILE=$t2_IBD
|
|
-- source include/search_pattern_in_file.inc
|
|
--echo # t3 ... on expecting NOT FOUND
|
|
--let SEARCH_PATTERN=barfoo
|
|
-- let SEARCH_FILE=$t3_IBD
|
|
-- source include/search_pattern_in_file.inc
|
|
|
|
UNLOCK TABLES;
|
|
ALTER TABLE t1 FORCE;
|
|
SHOW CREATE TABLE t1;
|
|
ALTER TABLE t2 FORCE;
|
|
SHOW CREATE TABLE t2;
|
|
ALTER TABLE t3 FORCE;
|
|
SHOW CREATE TABLE t3;
|
|
|
|
--echo # Verify that tables are still usable
|
|
CHECK TABLE t1, t2, t3 EXTENDED;
|
|
FLUSH TABLES t1, t2, t3 FOR EXPORT;
|
|
|
|
--let SEARCH_PATTERN=foobar
|
|
--echo # t1 yes on expecting NOT FOUND
|
|
-- let SEARCH_FILE=$t1_IBD
|
|
-- source include/search_pattern_in_file.inc
|
|
--let SEARCH_PATTERN=temp
|
|
--echo # t2 ... on expecting NOT FOUND
|
|
-- let SEARCH_FILE=$t2_IBD
|
|
-- source include/search_pattern_in_file.inc
|
|
--echo # t3 ... on expecting NOT FOUND
|
|
--let SEARCH_PATTERN=barfoo
|
|
-- let SEARCH_FILE=$t3_IBD
|
|
|
|
UNLOCK TABLES;
|
|
|
|
DROP TABLE t1, t2, t3;
|