1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
--echo #
--echo # Bug#30787535 : FULLTEXT INDEX TABLES CREATED IN ENCRYPTED SCHEMA ARE NOT ENCRYPTED
--echo #
################################################################################
# For an encrypted table, this test case checks physical ibd file for :
# - table
# - fts table created for an FTS index on table
# - Other aux tables created for FTS index
# to see if they are encrypted.
################################################################################
--source include/have_debug.inc
# Disable in valgrind because of timeout, cf. Bug#22760145
--source include/not_valgrind.inc
# Waiting time when (re)starting the server
--let $explicit_default_wait_counter=10000
--echo #########
--echo # SETUP #
--echo #########
--echo
let datadir=`SELECT @@datadir`;
let search_pattern=supremum;
--echo #########################################################################
--echo # RESTART 1 : WITH KEYRING PLUGIN
--echo #########################################################################
let $restart_parameters = restart: --early-plugin-load=keyring_file=$KEYRING_PLUGIN --loose-keyring_file_data=$MYSQL_TMP_DIR/mysecret_keyring $KEYRING_PLUGIN_OPT;
--source include/restart_mysqld_no_echo.inc
--echo # Create a new 'unencrypted' table
CREATE TABLE t1 (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
C1 TEXT(500),
C2 VARCHAR(200),
C3 VARCHAR(200)) ENCRYPTION='N' ENGINE=InnoDB;
# Make sure all pages are flushed
set global innodb_buf_flush_list_now = 1;
--echo # ---------------------------------------------------------------
--echo # Test 1 : t1 un-encrypted, FTS tables should also be unencrypted
--echo # ---------------------------------------------------------------
--echo # Check that tablespace file is not encrypted
--let ts_name=test/t1.ibd
--source include/if_encrypted.inc
CREATE FULLTEXT INDEX idx ON t1(C1);
# Make sure all pages are flushed
set global innodb_buf_flush_list_now = 1;
--let ts_name = `select NAME from information_schema.innodb_tables where name like "%index_1%";`
--let ts_name = $ts_name.ibd
--echo # Check that FTS tablespaces file is not encrypted
--source include/if_encrypted.inc
--echo # ---------------------------------------------------------------
--echo # Test 1 : t1 encrypted, FTS tables should also be unencrypted
--echo # ---------------------------------------------------------------
# Now, change the encryption property of table
ALTER TABLE t1 ENCRYPTION='Y';
--echo # Check that tablespace file is encrypted now
--let ts_name=test/t1.ibd
--source include/if_encrypted.inc
--let ts_name = `select NAME from information_schema.innodb_tables where name like "%index_1%";`
--let ts_name = $ts_name.ibd
--echo # Check that FTS tablespace file is encrypted now
--source include/if_encrypted.inc
--echo ###########
--echo # CLEANUP #
--echo ###########
DROP TABLE test.t1;
remove_file $MYSQLTEST_VARDIR/tmpfile.txt;
remove_file $MYSQL_TMP_DIR/mysecret_keyring;
--echo # Restarting server without keyring to restore server state
let $restart_parameters = restart: ;
--source include/restart_mysqld.inc
|