mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			263 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			263 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --source include/innodb_page_size_small.inc
 | |
| 
 | |
| CREATE DATABASE mysqltest_innodb_zip;
 | |
| USE mysqltest_innodb_zip;
 | |
| SELECT table_name, row_format, data_length, index_length
 | |
|   FROM information_schema.tables
 | |
|   WHERE table_schema='mysqltest_innodb_zip';
 | |
| 
 | |
| let $per_table=`select @@innodb_file_per_table`;
 | |
| SET @save_innodb_stats_on_metadata=@@global.innodb_stats_on_metadata;
 | |
| 
 | |
| --let $query_i_s = SELECT table_schema, table_name, row_format, data_length, index_length FROM information_schema.tables WHERE engine='innodb' AND table_schema != 'mysql' and table_schema != 'sys' order by table_name
 | |
| 
 | |
| set session innodb_strict_mode=0;
 | |
| set global innodb_file_per_table=off;
 | |
| SET @@global.innodb_stats_on_metadata=ON;
 | |
| 
 | |
| create table t0(a int primary key) engine=innodb row_format=compressed;
 | |
| create table t00(a int primary key) engine=innodb
 | |
| key_block_size=4 row_format=compressed;
 | |
| create table t1(a int primary key) engine=innodb row_format=dynamic;
 | |
| create table t2(a int primary key) engine=innodb row_format=redundant;
 | |
| create table t3(a int primary key) engine=innodb row_format=compact;
 | |
| create table t4(a int primary key) engine=innodb key_block_size=9;
 | |
| create table t5(a int primary key) engine=innodb
 | |
| key_block_size=1 row_format=redundant;
 | |
| 
 | |
| set global innodb_file_per_table=on;
 | |
| create table t6(a int primary key) engine=innodb
 | |
| key_block_size=1 row_format=redundant;
 | |
| create table t7(a int primary key) engine=innodb
 | |
| key_block_size=1 row_format=redundant;
 | |
| create table t8(a int primary key) engine=innodb
 | |
| key_block_size=1 row_format=fixed;
 | |
| create table t9(a int primary key) engine=innodb
 | |
| key_block_size=1 row_format=compact;
 | |
| create table t10(a int primary key) engine=innodb
 | |
| key_block_size=1 row_format=dynamic;
 | |
| create table t11(a int primary key) engine=innodb
 | |
| key_block_size=1 row_format=compressed;
 | |
| create table t12(a int primary key) engine=innodb
 | |
| key_block_size=1;
 | |
| create table t13(a int primary key) engine=innodb
 | |
| row_format=compressed;
 | |
| create table t14(a int primary key) engine=innodb key_block_size=9;
 | |
| 
 | |
| --replace_result 16384 {valid} 8192 {valid} 4096 {valid} 2048 {valid}
 | |
| --eval $query_i_s
 | |
| 
 | |
| drop table t0,t00,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14;
 | |
| alter table t1 key_block_size=0;
 | |
| alter table t1 row_format=dynamic;
 | |
| --replace_result 16384 {valid} 8192 {valid} 4096 {valid}
 | |
| --eval $query_i_s
 | |
| alter table t1 row_format=compact;
 | |
| --replace_result 16384 {valid} 8192 {valid} 4096 {valid}
 | |
| --eval $query_i_s
 | |
| alter table t1 row_format=redundant;
 | |
| --replace_result 16384 {valid} 8192 {valid} 4096 {valid}
 | |
| --eval $query_i_s
 | |
| drop table t1;
 | |
| 
 | |
| create table t1(a int not null, b text, index(b(10))) engine=innodb
 | |
| key_block_size=1;
 | |
| 
 | |
| create table t2(b text)engine=innodb;
 | |
| insert into t2 values(concat('1abcdefghijklmnopqrstuvwxyz', repeat('A',5000)));
 | |
| 
 | |
| insert into t1 select 1, b from t2;
 | |
| commit;
 | |
| 
 | |
| connect (a,localhost,root,,mysqltest_innodb_zip);
 | |
| connect (b,localhost,root,,mysqltest_innodb_zip);
 | |
| 
 | |
| connection a;
 | |
| begin;
 | |
| update t1 set b=repeat('B',100);
 | |
| 
 | |
| connection b;
 | |
| select a,left(b,40) from t1 natural join t2;
 | |
| 
 | |
| connection a;
 | |
| rollback;
 | |
| 
 | |
| connection b;
 | |
| select a,left(b,40) from t1 natural join t2;
 | |
| 
 | |
| connection default;
 | |
| disconnect a;
 | |
| disconnect b;
 | |
| 
 | |
| analyze table t1;
 | |
| analyze table t2;
 | |
| --replace_result 16384 {valid} 12288 {valid}
 | |
| --eval $query_i_s
 | |
| drop table t1,t2;
 | |
| 
 | |
| #
 | |
| # Bug #50945 moved to innodb_16k.test, innodb_8k.test, & innodb_4k.test
 | |
| #
 | |
| 
 | |
| #
 | |
| # Test blob column inheritance (mantis issue#36)
 | |
| #
 | |
| 
 | |
| create table t1( c1 int not null, c2 blob, c3 blob, c4 blob,
 | |
| 		primary key(c1, c2(22), c3(22)))
 | |
| 		engine = innodb row_format = dynamic;
 | |
| begin;
 | |
| insert into t1 values(1, repeat('A', 20000), repeat('B', 20000),
 | |
| 			repeat('C', 20000));
 | |
| 
 | |
| update t1 set c3 = repeat('D', 20000) where c1 = 1;
 | |
| commit;
 | |
| 
 | |
| # one blob column which is unchanged in update and part of PK
 | |
| # one blob column which is changed and part of of PK
 | |
| # one blob column which is not part of PK and is unchanged
 | |
| select count(*) from t1 where c2 = repeat('A', 20000);
 | |
| select count(*) from t1 where c3 = repeat('D', 20000);
 | |
| select count(*) from t1 where c4 = repeat('C', 20000);
 | |
| 
 | |
| update t1 set c3 = repeat('E', 20000) where c1 = 1;
 | |
| drop table t1;
 | |
| 
 | |
| set global innodb_file_per_table = on;
 | |
| 
 | |
| set innodb_strict_mode = off;
 | |
| create table t1 (id int primary key) engine = innodb key_block_size = 0;
 | |
| drop table t1;
 | |
| 
 | |
| #set strict_mode
 | |
| set innodb_strict_mode = on;
 | |
| 
 | |
| #Test different values of KEY_BLOCK_SIZE
 | |
| 
 | |
| create table t1 (id int primary key) engine = innodb key_block_size = 0;
 | |
| 
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t2 (id int primary key) engine = innodb key_block_size = 9;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| 
 | |
| 
 | |
| create table t3 (id int primary key) engine = innodb key_block_size = 1;
 | |
| create table t4 (id int primary key) engine = innodb key_block_size = 2;
 | |
| create table t5 (id int primary key) engine = innodb key_block_size = 4;
 | |
| # These tests are now done in innodb_16k, innodb_8k and innodb_4k
 | |
| # where they get different result depending on page size
 | |
| # create table t6 (id int primary key) engine = innodb key_block_size = 8;
 | |
| # create table t7 (id int primary key) engine = innodb key_block_size = 16;
 | |
| 
 | |
| #check various ROW_FORMAT values.
 | |
| create table t8 (id int primary key) engine = innodb row_format = compressed;
 | |
| create table t9 (id int primary key) engine = innodb row_format = dynamic;
 | |
| create table t10(id int primary key) engine = innodb row_format = compact;
 | |
| create table t11(id int primary key) engine = innodb row_format = redundant;
 | |
| 
 | |
| --replace_result 16384 {valid} 8192 {valid} 4096 {valid} 2048 {valid}
 | |
| --eval $query_i_s
 | |
| drop table t1, t3, t4, t5, t8, t9, t10, t11;
 | |
| 
 | |
| #test different values of ROW_FORMAT with KEY_BLOCK_SIZE
 | |
| create table t1 (id int primary key) engine = innodb
 | |
| key_block_size = 4 row_format = compressed;
 | |
| 
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t2 (id int primary key) engine = innodb
 | |
| key_block_size = 4 row_format = redundant;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| 
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t3 (id int primary key) engine = innodb
 | |
| key_block_size = 4 row_format = compact;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| 
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t4 (id int primary key) engine = innodb
 | |
| key_block_size = 4 row_format = dynamic;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| 
 | |
| create table t5 (id int primary key) engine = innodb
 | |
| key_block_size = 4 row_format = default;
 | |
| 
 | |
| --eval $query_i_s
 | |
| drop table t1, t5;
 | |
| 
 | |
| #test multiple errors
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t1 (id int primary key) engine = innodb
 | |
| key_block_size = 9 row_format = redundant;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| 
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t2 (id int primary key) engine = innodb
 | |
| key_block_size = 9 row_format = compact;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| 
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t2 (id int primary key) engine = innodb
 | |
| key_block_size = 9 row_format = dynamic;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| 
 | |
| --eval $query_i_s
 | |
| 
 | |
| #test valid values with innodb_file_per_table unset
 | |
| set global innodb_file_per_table = off;
 | |
| 
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t1 (id int primary key) engine = innodb key_block_size = 1;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t2 (id int primary key) engine = innodb key_block_size = 2;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t3 (id int primary key) engine = innodb key_block_size = 4;
 | |
| show warnings;
 | |
| 
 | |
| # Tests for key_block_size = 8 and 16 were moved to innodb_16k, innodb_8k
 | |
| # and innodb_4k since they get different warnings with smaller page sizes.
 | |
| 
 | |
| --error ER_CANT_CREATE_TABLE
 | |
| create table t6 (id int primary key) engine = innodb row_format = compressed;
 | |
| --replace_regex / - .*[0-9]*[)]/)/
 | |
| show warnings;
 | |
| create table t7 (id int primary key) engine = innodb row_format = dynamic;
 | |
| show warnings;
 | |
| create table t8 (id int primary key) engine = innodb row_format = compact;
 | |
| create table t9 (id int primary key) engine = innodb row_format = redundant;
 | |
| 
 | |
| --replace_result 16384 {valid} 8192 {valid} 4096 {valid}
 | |
| --eval $query_i_s
 | |
| drop table t7, t8, t9;
 | |
| 
 | |
| #
 | |
| # restore environment to the state it was before this test execution
 | |
| #
 | |
| 
 | |
| -- disable_query_log
 | |
| eval set global innodb_file_per_table=$per_table;
 | |
| SET @@global.innodb_stats_on_metadata=@save_innodb_stats_on_metadata;
 | |
| --enable_query_log
 | |
| 
 | |
| DROP DATABASE mysqltest_innodb_zip;
 |