mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			102 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --source include/have_innodb.inc
 | |
| --source include/not_embedded.inc
 | |
| 
 | |
| let $innodb_compression_algorithm_orig=`SELECT @@innodb_compression_algorithm`;
 | |
| 
 | |
| # zlib
 | |
| set global innodb_compression_algorithm = 1;
 | |
| 
 | |
| create table innodb_normal(c1 bigint not null, b char(200)) engine=innodb;
 | |
| create table innodb_compact(c1 bigint not null, b char(200)) engine=innodb row_format=compact page_compressed=1;
 | |
| create table innodb_dynamic(c1 bigint not null, b char(200)) engine=innodb row_format=dynamic page_compressed=1;
 | |
| --error 1005
 | |
| create table innodb_compressed(c1 bigint not null, b char(200)) engine=innodb row_format=compressed page_compressed=1;
 | |
| show warnings;
 | |
| show create table innodb_compact;
 | |
| show create table innodb_dynamic;
 | |
| 
 | |
| # MDEV-7133: InnoDB: Assertion failure in thread 140737091569408 in file dict0mem.cc line 74 
 | |
| # InnoDB: Failing assertion: dict_tf_is_valid(flags)
 | |
| --error 1005
 | |
| create table innodb_redundant(c1 bigint not null, b char(200)) engine=innodb row_format=redundant page_compressed=1;
 | |
| show warnings;
 | |
| create table innodb_redundant(c1 bigint not null, b char(200)) engine=innodb row_format=redundant;
 | |
| show create table innodb_redundant;
 | |
| --error ER_ILLEGAL_HA_CREATE_OPTION
 | |
| alter table innodb_redundant page_compressed=1;
 | |
| show warnings;
 | |
| show create table innodb_redundant;
 | |
| alter table innodb_redundant row_format=compact page_compressed=1;
 | |
| show create table innodb_redundant;
 | |
| drop table innodb_redundant;
 | |
| 
 | |
| 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, substring(MD5(RAND()), -64));
 | |
|     set current_num = current_num + 1;
 | |
|   end while;
 | |
| end//
 | |
| delimiter ;//
 | |
| commit;
 | |
| 
 | |
| set autocommit=0;
 | |
| call innodb_insert_proc(5000);
 | |
| commit;
 | |
| set autocommit=1;
 | |
| 
 | |
| insert into innodb_compact select * from innodb_normal;
 | |
| insert into innodb_dynamic select * from innodb_normal;
 | |
| 
 | |
| update innodb_compact set c1 = c1 + 1;
 | |
| update innodb_dynamic set c1 = c1 + 1;
 | |
| select count(*) from innodb_compact where c1 < 1500000;
 | |
| select count(*) from innodb_dynamic where c1 < 1500000;
 | |
| 
 | |
| --source include/restart_mysqld.inc
 | |
| 
 | |
| update innodb_compact set c1 = c1 + 1;
 | |
| update innodb_dynamic set c1 = c1 + 1;
 | |
| select count(*) from innodb_compact where c1 < 1500000;
 | |
| select count(*) from innodb_dynamic where c1 < 1500000;
 | |
| 
 | |
| # none
 | |
| set global innodb_compression_algorithm = 0;
 | |
| 
 | |
| alter table innodb_compact engine=innodb page_compressed=DEFAULT;
 | |
| alter table innodb_dynamic engine=innodb page_compressed=DEFAULT;
 | |
| show create table innodb_compact;
 | |
| show create table innodb_dynamic;
 | |
| 
 | |
| update innodb_compact set c1 = c1 + 1;
 | |
| update innodb_dynamic set c1 = c1 + 1;
 | |
| select count(*) from innodb_compact where c1 < 1500000;
 | |
| select count(*) from innodb_dynamic where c1 < 1500000;
 | |
| 
 | |
| drop procedure innodb_insert_proc;
 | |
| drop table innodb_normal;
 | |
| drop table innodb_compact;
 | |
| drop table innodb_dynamic;
 | |
| 
 | |
| # MDEV-9820 introducing variable for having page compression turned on by default on InnoDB tables
 | |
| # test that innodb_compression_default works as expected, i.e. if it has a value of 1 (ON) tables are by default created with page_compressed=1;
 | |
| CREATE TABLE no_compression (id INT NOT NULL, name VARCHAR(200)) ENGINE=InnoDB;
 | |
| SET SESSION innodb_compression_default = 1;
 | |
| CREATE TABLE default_compression (id INT NOT NULL, name VARCHAR(200)) ENGINE=InnoDB;
 | |
| CREATE TABLE explicit_no_compression (id INT NOT NULL, name VARCHAR(200)) ENGINE=InnoDB PAGE_COMPRESSED=0;
 | |
| SHOW CREATE TABLE no_compression;
 | |
| SHOW CREATE TABLE default_compression;
 | |
| SHOW CREATE TABLE explicit_no_compression;
 | |
| DROP TABLE no_compression;
 | |
| DROP TABLE default_compression;
 | |
| DROP TABLE explicit_no_compression;
 | |
| SET SESSION innodb_compression_default = 0;
 | |
| 
 | |
| # reset system
 | |
| --disable_query_log
 | |
| EVAL SET GLOBAL innodb_compression_algorithm = $innodb_compression_algorithm_orig;
 | |
| --enable_query_log
 |