# ----------------------------------------------------------------------
# Setup
# Creating custom global manifest file for MySQL server
# Creating custom global configuration file for keyring component: component_keyring_file
# Re-starting mysql server with manifest file
# ----------------------------------------------------------------------
#
# Bug #29492911 : ENABLING UNDO-TABLESPACE ENCRYPTION DOESN'T MARK TABLESPACE ENCRYPTION FLAG
#
SHOW VARIABLES LIKE "%innodb_undo_log_encrypt%";
Variable_name	Value
innodb_undo_log_encrypt	OFF
# Taking backup of global manifest file for MySQL server
###############################################################################
# With keyring and innodb_undo_log_encrypt=ON
###############################################################################
# Restore global manifest file for MySQL server from backup
SHOW VARIABLES LIKE "%innodb_undo_log_encrypt%";
Variable_name	Value
innodb_undo_log_encrypt	ON
# Create a new UNDO tablespace. Should be created as ENCRYPTED.
CREATE UNDO TABLESPACE undo_3 ADD DATAFILE 'undo_3.ibu';
SELECT NAME, SPACE_TYPE, ENCRYPTION, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE='Undo';
NAME	SPACE_TYPE	ENCRYPTION	STATE
innodb_undo_001	Undo	Y	active
innodb_undo_002	Undo	Y	active
undo_3	Undo	Y	active
SET GLOBAL innodb_undo_log_encrypt=OFF;
SHOW VARIABLES LIKE "%innodb_undo_log_encrypt%";
Variable_name	Value
innodb_undo_log_encrypt	OFF
SELECT NAME, SPACE_TYPE, ENCRYPTION, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE='Undo';
NAME	SPACE_TYPE	ENCRYPTION	STATE
innodb_undo_001	Undo	N	active
innodb_undo_002	Undo	N	active
undo_3	Undo	N	active
# Create a new UNDO tablespace. Should be created as UNENCRYPTED.
CREATE UNDO TABLESPACE undo_4 ADD DATAFILE 'undo_4.ibu';
SELECT NAME, SPACE_TYPE, ENCRYPTION, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE='Undo';
NAME	SPACE_TYPE	ENCRYPTION	STATE
innodb_undo_001	Undo	N	active
innodb_undo_002	Undo	N	active
undo_3	Undo	N	active
undo_4	Undo	N	active
SET GLOBAL innodb_undo_log_encrypt=ON;
SHOW VARIABLES LIKE "%innodb_undo_log_encrypt%";
Variable_name	Value
innodb_undo_log_encrypt	ON
SELECT NAME, SPACE_TYPE, ENCRYPTION, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE='Undo';
NAME	SPACE_TYPE	ENCRYPTION	STATE
innodb_undo_001	Undo	Y	active
innodb_undo_002	Undo	Y	active
undo_3	Undo	Y	active
undo_4	Undo	Y	active
###############################################################################
# With keyring and innodb_undo_log_encrypt=OFF
###############################################################################
ALTER UNDO TABLESPACE undo_3 set INACTIVE;
SELECT NAME, SPACE_TYPE, ENCRYPTION, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE='Undo';
NAME	SPACE_TYPE	ENCRYPTION	STATE
innodb_undo_001	Undo	N	active
innodb_undo_002	Undo	N	active
undo_3	Undo	N	inactive
undo_4	Undo	N	active
DROP UNDO TABLESPACE undo_3;
ALTER UNDO TABLESPACE undo_4 set INACTIVE;
SELECT NAME, SPACE_TYPE, ENCRYPTION, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE='Undo';
NAME	SPACE_TYPE	ENCRYPTION	STATE
innodb_undo_001	Undo	N	active
innodb_undo_002	Undo	N	active
undo_4	Undo	N	inactive
DROP UNDO TABLESPACE undo_4;
SELECT NAME, SPACE_TYPE, ENCRYPTION, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE='Undo';
NAME	SPACE_TYPE	ENCRYPTION	STATE
innodb_undo_001	Undo	N	active
innodb_undo_002	Undo	N	active
# ----------------------------------------------------------------------
# Teardown
# Removing local keyring file for keyring component: component_keyring_file
# Removing global configuration file for keyring component: component_keyring_file
# Removing global manifest file for MySQL server
# Restarting server without the manifest file
# ----------------------------------------------------------------------
