-- source include/have_innodb.inc -- source include/have_example_key_management_plugin.inc -- source include/not_embedded.inc # This test is too slow for valgrind and causes innnodb semaphores to time out -- source include/not_valgrind.inc let $innodb_encrypt_tables_orig = `SELECT @@innodb_encrypt_tables`; let $innodb_encryption_threads_orig = `SELECT @@innodb_encryption_threads`; SET GLOBAL innodb_encryption_threads = 4; # zlib set global innodb_compression_algorithm = 1; create table innodb_normal (c1 int, b char(20)) engine=innodb; show warnings; create table innodb_page_compressed1 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=1; show warnings; show create table innodb_page_compressed1; create table innodb_page_compressed2 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=2; show warnings; show create table innodb_page_compressed2; create table innodb_page_compressed3 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=3; show warnings; show create table innodb_page_compressed3; create table innodb_page_compressed4 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=4; show warnings; show create table innodb_page_compressed4; create table innodb_page_compressed5 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=5; show warnings; show create table innodb_page_compressed5; create table innodb_page_compressed6 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=6; show warnings; show create table innodb_page_compressed6; create table innodb_page_compressed7 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=7; show warnings; show create table innodb_page_compressed7; create table innodb_page_compressed8 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=8; show warnings; show create table innodb_page_compressed8; create table innodb_page_compressed9 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=9; show warnings; show create table innodb_page_compressed9; 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 innodb_normal values(current_num,'testing..'); set current_num = current_num + 1; end while; end// delimiter ;// commit; begin; call innodb_insert_proc(2000); insert into innodb_page_compressed1 select * from innodb_normal; insert into innodb_page_compressed2 select * from innodb_normal; insert into innodb_page_compressed3 select * from innodb_normal; insert into innodb_page_compressed4 select * from innodb_normal; insert into innodb_page_compressed5 select * from innodb_normal; insert into innodb_page_compressed6 select * from innodb_normal; insert into innodb_page_compressed7 select * from innodb_normal; insert into innodb_page_compressed8 select * from innodb_normal; insert into innodb_page_compressed9 select * from innodb_normal; commit; select count(*) from innodb_page_compressed1 where c1 < 500000; select count(*) from innodb_page_compressed2 where c1 < 500000; select count(*) from innodb_page_compressed3 where c1 < 500000; select count(*) from innodb_page_compressed4 where c1 < 500000; select count(*) from innodb_page_compressed5 where c1 < 500000; select count(*) from innodb_page_compressed6 where c1 < 500000; select count(*) from innodb_page_compressed7 where c1 < 500000; select count(*) from innodb_page_compressed8 where c1 < 500000; select count(*) from innodb_page_compressed9 where c1 < 500000; flush tables innodb_page_compressed1, innodb_page_compressed2, innodb_page_compressed3, innodb_page_compressed4, innodb_page_compressed5, innodb_page_compressed6, innodb_page_compressed7, innodb_page_compressed8, innodb_page_compressed9 for export; unlock tables; --echo # Wait until dirty pages are compressed and encrypted let $wait_condition= select variable_value > 0 from information_schema.global_status where variable_name = 'INNODB_NUM_PAGES_PAGE_COMPRESSED'; --source include/wait_condition.inc let $wait_condition= select variable_value > 0 from information_schema.global_status where variable_name = 'INNODB_NUM_PAGES_ENCRYPTED'; --source include/wait_condition.inc SELECT variable_value > 0 FROM information_schema.global_status WHERE variable_name = 'innodb_num_pages_encrypted'; SELECT variable_value > 0 FROM information_schema.global_status WHERE variable_name = 'innodb_num_pages_page_compressed'; --source include/restart_mysqld.inc SET GLOBAL innodb_encryption_threads = 4; SET GLOBAL innodb_encrypt_tables = off; update innodb_page_compressed1 set c1 = c1 + 1; update innodb_page_compressed2 set c1 = c1 + 1; update innodb_page_compressed3 set c1 = c1 + 1; update innodb_page_compressed4 set c1 = c1 + 1; update innodb_page_compressed5 set c1 = c1 + 1; update innodb_page_compressed6 set c1 = c1 + 1; update innodb_page_compressed7 set c1 = c1 + 1; update innodb_page_compressed8 set c1 = c1 + 1; update innodb_page_compressed9 set c1 = c1 + 1; flush tables innodb_page_compressed1, innodb_page_compressed2, innodb_page_compressed3, innodb_page_compressed4, innodb_page_compressed5, innodb_page_compressed6, innodb_page_compressed7, innodb_page_compressed8, innodb_page_compressed9 for export; unlock tables; --echo # Wait until dirty pages are compressed and encrypted 2 let $wait_condition= select variable_value > 0 from information_schema.global_status where variable_name = 'INNODB_NUM_PAGES_PAGE_COMPRESSED'; --source include/wait_condition.inc let $wait_condition= select variable_value > 0 from information_schema.global_status where variable_name = 'INNODB_NUM_PAGES_DECRYPTED'; --source include/wait_condition.inc SELECT variable_value > 0 FROM information_schema.global_status WHERE variable_name = 'innodb_num_pages_decrypted'; SELECT variable_value > 0 FROM information_schema.global_status WHERE variable_name = 'innodb_num_pages_page_compressed'; SELECT variable_value > 0 FROM information_schema.global_status WHERE variable_name = 'innodb_num_pages_page_decompressed'; drop procedure innodb_insert_proc; drop table innodb_normal; drop table innodb_page_compressed1; drop table innodb_page_compressed2; drop table innodb_page_compressed3; drop table innodb_page_compressed4; drop table innodb_page_compressed5; drop table innodb_page_compressed6; drop table innodb_page_compressed7; drop table innodb_page_compressed8; drop table innodb_page_compressed9; # reset system --disable_query_log EVAL SET GLOBAL innodb_encrypt_tables = $innodb_encrypt_tables_orig; EVAL SET GLOBAL innodb_encryption_threads = $innodb_encryption_threads_orig; --enable_query_log