mirror of
https://github.com/MariaDB/server.git
synced 2025-07-21 21:22:27 +03:00
fil_page_decompress(): Replaces fil_decompress_page(). Allow the caller detect errors. Remove duplicated code. Use the "safe" instead of "fast" variants of decompression routines. fil_page_compress(): Replaces fil_compress_page(). The length of the input buffer always was srv_page_size (innodb_page_size). Remove printouts, and remove the fil_space_t* parameter. buf_tmp_buffer_t::reserved: Make private; the accessors acquire() and release() will use atomic memory access. buf_pool_reserve_tmp_slot(): Make static. Remove the second parameter. Do not acquire any mutex. Remove the allocation of the buffers. buf_tmp_reserve_crypt_buf(), buf_tmp_reserve_compression_buf(): Refactored away from buf_pool_reserve_tmp_slot(). buf_page_decrypt_after_read(): Make static, and simplify the logic. Use the encryption buffer also for decompressing. buf_page_io_complete(), buf_dblwr_process(): Check more failures. fil_space_encrypt(): Simplify the debug checks. fil_space_t::printed_compression_failure: Remove. fil_get_compression_alg_name(): Remove. fil_iterate(): Allocate a buffer for compression and decompression only once, instead of allocating and freeing it for every page that uses compression, during IMPORT TABLESPACE. Also, validate the page checksum before decryption, and reduce the scope of some variables. fil_page_is_index_page(), fil_page_is_lzo_compressed(): Remove (unused). AbstractCallback::operator()(): Remove the parameter 'offset'. The check for it in FetchIndexRootPages::operator() was basically redundant and dead code since the previous refactoring.
98 lines
4.0 KiB
Plaintext
98 lines
4.0 KiB
Plaintext
set global innodb_file_format = `Barracuda`;
|
|
set global innodb_file_per_table = on;
|
|
create table innodb_normal (c1 int not null auto_increment primary key, b char(200)) engine=innodb;
|
|
create table innodb_page_compressed1 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=1;
|
|
create table innodb_page_compressed2 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=2;
|
|
create table innodb_page_compressed3 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=3;
|
|
create table innodb_page_compressed4 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=4;
|
|
create table innodb_page_compressed5 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=5;
|
|
create table innodb_page_compressed6 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=6;
|
|
create table innodb_page_compressed7 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=7;
|
|
create table innodb_page_compressed8 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=8;
|
|
create table innodb_page_compressed9 (c1 int not null auto_increment primary key, b char(200)) engine=innodb page_compressed=1 page_compression_level=9;
|
|
select count(*) from innodb_page_compressed1;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed3;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed4;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed5;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed6;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed6;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed7;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed8;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed9;
|
|
count(*)
|
|
10000
|
|
# innodb_normal expected FOUND
|
|
FOUND 24084 /AaAaAaAa/ in innodb_normal.ibd
|
|
# innodb_page_compressed1 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed1.ibd
|
|
# innodb_page_compressed2 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed2.ibd
|
|
# innodb_page_compressed3 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed3.ibd
|
|
# innodb_page_compressed4 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed4.ibd
|
|
# innodb_page_compressed5 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed5.ibd
|
|
# innodb_page_compressed6 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed6.ibd
|
|
# innodb_page_compressed7 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed7.ibd
|
|
# innodb_page_compressed8 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed8.ibd
|
|
# innodb_page_compressed9 page compressed expected NOT FOUND
|
|
NOT FOUND /AaAaAaAa/ in innodb_page_compressed9.ibd
|
|
select count(*) from innodb_page_compressed1;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed3;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed4;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed5;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed6;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed6;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed7;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed8;
|
|
count(*)
|
|
10000
|
|
select count(*) from innodb_page_compressed9;
|
|
count(*)
|
|
10000
|
|
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;
|
|
#done
|