Commit 0fe39b68 authored by Jan Lindström's avatar Jan Lindström

MDEV-7262: innodb.innodb-mdev7046 and innodb-page_compression* fail on BuildBot

If persistent trim is not used some OS require that we write full page.
parent 8360e1a5
call mtr.add_suppression("InnoDB: File ./test/t1*"); 1
call mtr.add_suppression("nnoDB: Error number*");
USE test;
create table t1(f1 INT,f2 INT,f3 CHAR (10),primary key(f1,f2)) partition by range(f1) subpartition by hash(f2) subpartitions 2 (partition p1 values less than (0),partition p2 values less than (2),partition p3 values less than (2147483647));
RENAME TABLE t1 TO `t2_new..............................................end`;
ERROR HY000: Error on rename of 't2_new' (Errcode: 36 "File name too long")
alter table t1 engine=innodb;
RENAME TABLE t1 TO `t2_new..............................................end`;
ERROR HY000: Error on rename of 't2_new' (errno: -1 "Internal error < 0 (Not system error)")
show warnings;
Level Code Message
Error 1025 Error on rename of 't2_new' (errno: -1 "Internal error < 0 (Not system error)")
drop table t1;
DROP DATABASE test;
CREATE DATABASE test;
USE test;
SET @@session.storage_engine=MYISAM;
CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0 DATA DIRECTORY='/tmp/not-existing' INDEX DIRECTORY='/tmp/not-existing',SUBPARTITION sp1));
ERROR HY000: Can't create/write to file '/tmp/not-existing/t1#P#p0#SP#sp0.MYI' (Errcode: 2 "No such file or directory")
CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0,SUBPARTITION sp1));
ALTER TABLE t1 ENGINE=InnoDB;
drop table t1;
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_partition.inc --source include/have_partition.inc
--disable_query_log
--disable_result_log
--disable_warnings
# Ignore OS errors # Ignore OS errors
call mtr.add_suppression("InnoDB: File ./test/t1*"); call mtr.add_suppression("InnoDB: File ./test/t1*");
call mtr.add_suppression("nnoDB: Error number*"); call mtr.add_suppression("nnoDB: Error number*");
...@@ -23,8 +28,9 @@ drop table t1; ...@@ -23,8 +28,9 @@ drop table t1;
DROP DATABASE test;CREATE DATABASE test;USE test; DROP DATABASE test;CREATE DATABASE test;USE test;
SET @@session.storage_engine=MYISAM; SET @@session.storage_engine=MYISAM;
--error 1 --error 1,0
CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0 DATA DIRECTORY='/tmp/not-existing' INDEX DIRECTORY='/tmp/not-existing',SUBPARTITION sp1)); CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0 DATA DIRECTORY='/tmp/not-existing' INDEX DIRECTORY='/tmp/not-existing',SUBPARTITION sp1));
drop table if exists t1;
CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0,SUBPARTITION sp1)); CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0,SUBPARTITION sp1));
ALTER TABLE t1 ENGINE=InnoDB; ALTER TABLE t1 ENGINE=InnoDB;
...@@ -32,3 +38,10 @@ drop table t1; ...@@ -32,3 +38,10 @@ drop table t1;
let $datadir=`select @@datadir`; let $datadir=`select @@datadir`;
--remove_file $datadir/test/db.opt --remove_file $datadir/test/db.opt
--enable_query_log
--enable_result_log
--enable_warnings
# make sure that we have at least some ouput to avoid mtr warning
--echo 1
...@@ -477,6 +477,12 @@ fil_compress_page( ...@@ -477,6 +477,12 @@ fil_compress_page(
srv_stats.page_compression_saved.add((len - write_size)); srv_stats.page_compression_saved.add((len - write_size));
srv_stats.pages_page_compressed.inc(); srv_stats.pages_page_compressed.inc();
/* If we do not persistently trim rest of page, we need to write it
all */
if (!srv_use_trim) {
write_size = len;
}
*out_len = write_size; *out_len = write_size;
return(out_buf); return(out_buf);
......
...@@ -474,6 +474,12 @@ fil_compress_page( ...@@ -474,6 +474,12 @@ fil_compress_page(
srv_stats.page_compression_saved.add((len - write_size)); srv_stats.page_compression_saved.add((len - write_size));
srv_stats.pages_page_compressed.inc(); srv_stats.pages_page_compressed.inc();
/* If we do not persistently trim rest of page, we need to write it
all */
if (!srv_use_trim) {
write_size = len;
}
*out_len = write_size; *out_len = write_size;
return(out_buf); return(out_buf);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment