mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
e555540ab6
When using innodb_page_size=16k, InnoDB tables that were created in MariaDB 10.1.0 to 10.1.20 with PAGE_COMPRESSED=1 and PAGE_COMPRESSION_LEVEL=2 or PAGE_COMPRESSION_LEVEL=3 would fail to load. fsp_flags_is_valid(): When using innodb_page_size=16k, use a more strict check for .ibd files, with the assumption that nobody would try to use different-page-size files.
104 lines
3.3 KiB
Text
104 lines
3.3 KiB
Text
--source include/innodb_page_size.inc
|
|
--source include/not_embedded.inc
|
|
|
|
-- echo #
|
|
-- echo # MDEV-11623 MariaDB 10.1 fails to start datadir created with
|
|
-- echo # MariaDB 10.0/MySQL 5.6 using innodb-page-size!=16K
|
|
-- echo #
|
|
|
|
# This is actually testing the opposite: starting the fixed 10.1 with
|
|
# buggy 10.1 files (by manually converting the flags in the files).
|
|
|
|
--disable_query_log
|
|
call mtr.add_suppression("InnoDB: adjusting FSP_SPACE_FLAGS of tablespace");
|
|
FLUSH TABLES;
|
|
SET GLOBAL innodb_file_per_table=1;
|
|
SET GLOBAL innodb_file_format=Barracuda;
|
|
--enable_query_log
|
|
let INNODB_PAGE_SIZE=`select @@innodb_page_size`;
|
|
let MYSQLD_DATADIR=`select @@datadir`;
|
|
|
|
CREATE TABLE tr(a INT)ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
|
|
CREATE TABLE tc(a INT)ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
|
CREATE TABLE td(a INT)ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
|
--disable_warnings
|
|
CREATE TABLE tz(a INT)ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
|
--enable_warnings
|
|
|
|
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
|
|
EVAL CREATE TABLE tdd(a INT) ENGINE=InnoDB, DATA DIRECTORY='$MYSQL_TMP_DIR';
|
|
|
|
CREATE TABLE tp(a INT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC PAGE_COMPRESSED=1;
|
|
CREATE TABLE ti(a INT) ENGINE=InnoDB;
|
|
FLUSH TABLES ti FOR EXPORT;
|
|
perl;
|
|
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
|
|
ib_backup_tablespaces("test", "ti");
|
|
EOF
|
|
UNLOCK TABLES;
|
|
ALTER TABLE ti DISCARD TABLESPACE;
|
|
perl;
|
|
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
|
|
ib_discard_tablespaces("test", "ti");
|
|
ib_restore_tablespaces("test", "ti");
|
|
do "$ENV{MTR_SUITE_DIR}/include/ibd_convert.pl";
|
|
my $ps = $ENV{INNODB_PAGE_SIZE};
|
|
my $dd = $ENV{MYSQLD_DATADIR};
|
|
convert_to_mariadb_101("$dd/test/ti.ibd", $ps);
|
|
EOF
|
|
|
|
ALTER TABLE ti IMPORT TABLESPACE;
|
|
|
|
BEGIN;
|
|
INSERT INTO tr VALUES(1);
|
|
INSERT INTO tc VALUES(1);
|
|
INSERT INTO td VALUES(1);
|
|
INSERT INTO tz VALUES(1);
|
|
INSERT INTO tdd VALUES(1);
|
|
INSERT INTO tp VALUES(1);
|
|
INSERT INTO ti VALUES(1);
|
|
|
|
--source include/kill_mysqld.inc
|
|
|
|
perl;
|
|
do "$ENV{MTR_SUITE_DIR}/include/ibd_convert.pl";
|
|
my $ps = $ENV{INNODB_PAGE_SIZE};
|
|
my $dd = $ENV{MYSQLD_DATADIR};
|
|
|
|
convert_to_mariadb_101("$dd/ibdata1", $ps);
|
|
convert_to_mariadb_101("$dd/test/tr.ibd", $ps);
|
|
convert_to_mariadb_101("$dd/test/tc.ibd", $ps);
|
|
convert_to_mariadb_101("$dd/test/td.ibd", $ps);
|
|
convert_to_mariadb_101("$dd/test/tz.ibd", 1024) if $ps<32768;
|
|
convert_to_mariadb_101("$dd/test/tp.ibd", $ps);
|
|
convert_to_mariadb_101("$dd/test/ti.ibd", $ps);
|
|
convert_to_mariadb_101("$ENV{MYSQL_TMP_DIR}/test/tdd.ibd", $ps);
|
|
EOF
|
|
|
|
--source include/start_mysqld.inc
|
|
CHECK TABLE tr,tc,td,tz,tdd,tp,ti;
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
perl;
|
|
do "$ENV{MTR_SUITE_DIR}/include/ibd_convert.pl";
|
|
my $ps = $ENV{INNODB_PAGE_SIZE};
|
|
my $dd = $ENV{MYSQLD_DATADIR};
|
|
|
|
convert_to_mariadb_101("$dd/ibdata1", $ps);
|
|
convert_to_mariadb_101("$dd/test/tr.ibd", $ps);
|
|
convert_to_mariadb_101("$dd/test/tc.ibd", $ps);
|
|
convert_to_mariadb_101("$dd/test/td.ibd", $ps);
|
|
convert_to_mariadb_101("$dd/test/tz.ibd", 1024) if $ps<32768;
|
|
convert_to_mariadb_101("$dd/test/tp.ibd", $ps);
|
|
convert_to_mariadb_101("$dd/test/ti.ibd", $ps);
|
|
convert_to_mariadb_101("$ENV{MYSQL_TMP_DIR}/test/tdd.ibd", $ps);
|
|
EOF
|
|
|
|
--let $restart_parameters=--innodb-read-only
|
|
--source include/start_mysqld.inc
|
|
CHECK TABLE tr,tc,td,tz,tdd,tp,ti;
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
--let $restart_parameters=
|
|
--source include/start_mysqld.inc
|
|
DROP TABLE tr,tc,td,tz,tdd,tp,ti;
|