mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge 10.1 into 10.2
MDEV-20094 was filed for the unexpected result differences for the test innodb.check_ibd_filesize.
This commit is contained in:
25
mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
Normal file
25
mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
Normal file
@@ -0,0 +1,25 @@
|
||||
--- check_ibd_filesize.result
|
||||
+++ check_ibd_filesize.result,32k
|
||||
@@ -3,18 +3,12 @@
|
||||
# SPACE IN 5.7 THAN IN 5.6
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||
-# bytes: 98304
|
||||
+# bytes: 196608
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
|
||||
-# bytes: 9437184
|
||||
+# bytes: 786432
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
|
||||
-# bytes: 98304
|
||||
+# bytes: 196608
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
-# bytes: 4194304
|
||||
-DROP TABLE t1;
|
||||
-CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
|
||||
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||
-# bytes: 65536
|
||||
-INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
-# bytes: 65536
|
||||
+# bytes: 786432
|
||||
DROP TABLE t1;
|
25
mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
Normal file
25
mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
Normal file
@@ -0,0 +1,25 @@
|
||||
--- check_ibd_filesize.result
|
||||
+++ check_ibd_filesize.result,4k
|
||||
@@ -3,18 +3,18 @@
|
||||
# SPACE IN 5.7 THAN IN 5.6
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||
-# bytes: 98304
|
||||
+# bytes: 24576
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
|
||||
# bytes: 9437184
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
|
||||
-# bytes: 98304
|
||||
+# bytes: 24576
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
# bytes: 4194304
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
|
||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||
-# bytes: 65536
|
||||
+# bytes: 16384
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
-# bytes: 65536
|
||||
+# bytes: 25600
|
||||
DROP TABLE t1;
|
25
mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
Normal file
25
mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
Normal file
@@ -0,0 +1,25 @@
|
||||
--- check_ibd_filesize.result
|
||||
+++ check_ibd_filesize.result,64k
|
||||
@@ -3,18 +3,12 @@
|
||||
# SPACE IN 5.7 THAN IN 5.6
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||
-# bytes: 98304
|
||||
+# bytes: 393216
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
|
||||
-# bytes: 9437184
|
||||
+# bytes: 983040
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
|
||||
-# bytes: 98304
|
||||
+# bytes: 393216
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
-# bytes: 4194304
|
||||
-DROP TABLE t1;
|
||||
-CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
|
||||
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||
-# bytes: 65536
|
||||
-INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
-# bytes: 65536
|
||||
+# bytes: 1572864
|
||||
DROP TABLE t1;
|
25
mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
Normal file
25
mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
Normal file
@@ -0,0 +1,25 @@
|
||||
--- check_ibd_filesize.result
|
||||
+++ check_ibd_filesize.result,8k
|
||||
@@ -3,18 +3,18 @@
|
||||
# SPACE IN 5.7 THAN IN 5.6
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||
-# bytes: 98304
|
||||
+# bytes: 49152
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
|
||||
# bytes: 9437184
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
|
||||
-# bytes: 98304
|
||||
+# bytes: 49152
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
# bytes: 4194304
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
|
||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||
-# bytes: 65536
|
||||
+# bytes: 32768
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
-# bytes: 65536
|
||||
+# bytes: 32768
|
||||
DROP TABLE t1;
|
20
mysql-test/suite/innodb/r/check_ibd_filesize.result
Normal file
20
mysql-test/suite/innodb/r/check_ibd_filesize.result
Normal file
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# Bug #21950389 SMALL TABLESPACES WITH BLOBS TAKE UP TO 80 TIMES MORE
|
||||
# SPACE IN 5.7 THAN IN 5.6
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||
# bytes: 98304
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
|
||||
# bytes: 9437184
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
|
||||
# bytes: 98304
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
# bytes: 4194304
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
|
||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||
# bytes: 65536
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
# bytes: 65536
|
||||
DROP TABLE t1;
|
162
mysql-test/suite/innodb/r/innodb-system-table-view.result
Normal file
162
mysql-test/suite/innodb/r/innodb-system-table-view.result
Normal file
@@ -0,0 +1,162 @@
|
||||
SELECT table_id INTO @table_stats_id FROM information_schema.innodb_sys_tables
|
||||
WHERE name = 'mysql/innodb_table_stats';
|
||||
SELECT table_id INTO @index_stats_id FROM information_schema.innodb_sys_tables
|
||||
WHERE name = 'mysql/innodb_index_stats';
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY table_id;
|
||||
TABLE_ID NAME FLAG N_COLS SPACE FILE_FORMAT ROW_FORMAT ZIP_PAGE_SIZE SPACE_TYPE
|
||||
11 SYS_FOREIGN 0 7 0 Antelope Redundant 0 System
|
||||
12 SYS_FOREIGN_COLS 0 7 0 Antelope Redundant 0 System
|
||||
13 SYS_TABLESPACES 0 6 0 Antelope Redundant 0 System
|
||||
14 SYS_DATAFILES 0 5 0 Antelope Redundant 0 System
|
||||
15 SYS_VIRTUAL 0 6 0 Antelope Redundant 0 System
|
||||
SELECT table_id,pos,mtype,prtype,len,name
|
||||
FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
|
||||
WHERE table_id NOT IN (@table_stats_id, @index_stats_id)
|
||||
ORDER BY table_id, pos;
|
||||
table_id pos mtype prtype len name
|
||||
11 0 1 524292 0 ID
|
||||
11 1 1 524292 0 FOR_NAME
|
||||
11 2 1 524292 0 REF_NAME
|
||||
11 3 6 0 4 N_COLS
|
||||
12 0 1 524292 0 ID
|
||||
12 1 6 0 4 POS
|
||||
12 2 1 524292 0 FOR_COL_NAME
|
||||
12 3 1 524292 0 REF_COL_NAME
|
||||
13 0 6 0 4 SPACE
|
||||
13 1 1 524292 0 NAME
|
||||
13 2 6 0 4 FLAGS
|
||||
14 0 6 0 4 SPACE
|
||||
14 1 1 524292 0 PATH
|
||||
15 0 6 0 8 TABLE_ID
|
||||
15 1 6 0 4 POS
|
||||
15 2 6 0 4 BASE_POS
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
||||
WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY index_id;
|
||||
INDEX_ID NAME TABLE_ID TYPE N_FIELDS PAGE_NO SPACE MERGE_THRESHOLD
|
||||
# ID_IND # 3 1 # # 50
|
||||
# FOR_IND # 0 1 # # 50
|
||||
# REF_IND # 0 1 # # 50
|
||||
# ID_IND # 3 2 # # 50
|
||||
# SYS_TABLESPACES_SPACE # 3 1 # # 50
|
||||
# SYS_DATAFILES_SPACE # 3 1 # # 50
|
||||
# BASE_IDX # 3 3 # # 50
|
||||
SELECT index_id,pos,name FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS
|
||||
WHERE name NOT IN ('database_name', 'table_name', 'index_name', 'stat_name')
|
||||
ORDER BY index_id, pos;
|
||||
index_id pos name
|
||||
11 0 ID
|
||||
12 0 FOR_NAME
|
||||
13 0 REF_NAME
|
||||
14 0 ID
|
||||
14 1 POS
|
||||
15 0 SPACE
|
||||
16 0 SPACE
|
||||
17 0 TABLE_ID
|
||||
17 1 POS
|
||||
17 2 BASE_POS
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
||||
ID FOR_NAME REF_NAME N_COLS TYPE
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
||||
ID FOR_COL_NAME REF_COL_NAME POS
|
||||
CREATE TABLE t_redundant (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
|
||||
CREATE TABLE t_compact (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
|
||||
CREATE TABLE t_compressed (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb KEY_BLOCK_SIZE=2;
|
||||
CREATE TABLE t_dynamic (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
|
||||
=== information_schema.innodb_sys_tables and innodb_sys_tablespaces ===
|
||||
Table Name Tablespace Table Flags Columns Row Format Zip Size Space Type
|
||||
test/t_compact test/t_compact 1 5 Compact 0 Single
|
||||
test/t_compressed test/t_compressed 37 5 Compressed 2048 Single
|
||||
test/t_dynamic test/t_dynamic 33 5 Dynamic 0 Single
|
||||
test/t_redundant test/t_redundant 0 5 Redundant 0 Single
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t_redundant Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t_redundant.ibd
|
||||
test/t_compact Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t_compact.ibd
|
||||
test/t_compressed Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t_compressed.ibd
|
||||
test/t_dynamic Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t_dynamic.ibd
|
||||
DROP TABLE t_redundant, t_compact, t_compressed, t_dynamic;
|
||||
SELECT count(*) FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
|
||||
count(*)
|
||||
7
|
||||
CREATE TABLE parent (id INT NOT NULL,
|
||||
PRIMARY KEY (id)) ENGINE=INNODB;
|
||||
CREATE TABLE child (id INT, parent_id INT,
|
||||
INDEX par_ind (parent_id),
|
||||
CONSTRAINT constraint_test
|
||||
FOREIGN KEY (parent_id) REFERENCES parent(id)
|
||||
ON DELETE CASCADE) ENGINE=INNODB;
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
||||
ID FOR_NAME REF_NAME N_COLS TYPE
|
||||
test/constraint_test test/child test/parent 1 1
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
||||
ID FOR_COL_NAME REF_COL_NAME POS
|
||||
test/constraint_test parent_id id 0
|
||||
INSERT INTO parent VALUES(1);
|
||||
SELECT name, num_rows, ref_count
|
||||
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name LIKE "%parent";
|
||||
name num_rows ref_count
|
||||
test/parent 1 1
|
||||
SELECT NAME, FLAG, N_COLS FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE name NOT LIKE 'sys/%';
|
||||
NAME FLAG N_COLS
|
||||
SYS_DATAFILES 0 5
|
||||
SYS_FOREIGN 0 7
|
||||
SYS_FOREIGN_COLS 0 7
|
||||
SYS_TABLESPACES 0 6
|
||||
SYS_VIRTUAL 0 6
|
||||
mysql/innodb_index_stats 33 11
|
||||
mysql/innodb_table_stats 33 9
|
||||
test/child 33 5
|
||||
test/parent 33 4
|
||||
SELECT name, n_fields
|
||||
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
||||
WHERE table_id In (SELECT table_id from
|
||||
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE name LIKE "%parent%");
|
||||
name n_fields
|
||||
PRIMARY 1
|
||||
SELECT name, n_fields
|
||||
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
||||
WHERE table_id In (SELECT table_id from
|
||||
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE name LIKE "%child%");
|
||||
name n_fields
|
||||
GEN_CLUST_INDEX 0
|
||||
par_ind 1
|
||||
SELECT name, pos, mtype, len
|
||||
from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
|
||||
WHERE table_id In (SELECT table_id from
|
||||
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE name LIKE "%child%");
|
||||
name pos mtype len
|
||||
id 0 6 4
|
||||
parent_id 1 6 4
|
||||
DROP TABLE child;
|
||||
DROP TABLE parent;
|
||||
CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL,
|
||||
PRIMARY KEY (id, newid)) ENGINE=INNODB;
|
||||
CREATE TABLE child (id INT, parent_id INT,
|
||||
INDEX par_ind (parent_id),
|
||||
CONSTRAINT constraint_test
|
||||
FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid)
|
||||
ON DELETE CASCADE) ENGINE=INNODB;
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
||||
ID FOR_NAME REF_NAME N_COLS TYPE
|
||||
test/constraint_test test/child test/parent 2 1
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
||||
ID FOR_COL_NAME REF_COL_NAME POS
|
||||
test/constraint_test id id 0
|
||||
test/constraint_test parent_id newid 1
|
||||
INSERT INTO parent VALUES(1, 9);
|
||||
SELECT * FROM parent WHERE id IN (SELECT id FROM parent);
|
||||
id newid
|
||||
1 9
|
||||
SELECT name, num_rows, ref_count
|
||||
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name LIKE "%parent";
|
||||
name num_rows ref_count
|
||||
test/parent 1 2
|
||||
DROP TABLE child;
|
||||
DROP TABLE parent;
|
27
mysql-test/suite/innodb/r/innodb-wl5980-debug.result
Normal file
27
mysql-test/suite/innodb/r/innodb-wl5980-debug.result
Normal file
@@ -0,0 +1,27 @@
|
||||
call mtr.add_suppression("Cannot find space id [0-9]+ in the tablespace memory cache");
|
||||
call mtr.add_suppression("Cannot rename table 'test/t1' to 'test/t2' since the dictionary cache already contains 'test/t2'.");
|
||||
#
|
||||
# WL5980 Remote tablespace debug error injection tests.
|
||||
#
|
||||
CREATE TABLE t1 (a int KEY, b text) ENGINE=Innodb DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir' ;
|
||||
INSERT INTO t1 VALUES (1, 'tablespace');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 tablespace
|
||||
#
|
||||
# Test the second injection point in fil_rename_tablespace().
|
||||
# Make sure the table is useable after this failure.
|
||||
#
|
||||
SET @save_dbug=@@debug_dbug;
|
||||
SET debug_dbug="+d,fil_rename_tablespace_failure_2";
|
||||
RENAME TABLE t1 TO t2;
|
||||
SET debug_dbug=@save_dbug;
|
||||
INSERT INTO t1 VALUES (2, 'tablespace');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 tablespace
|
||||
2 tablespace
|
||||
#
|
||||
# Cleanup
|
||||
#
|
||||
DROP TABLE t1;
|
13
mysql-test/suite/innodb/r/trx_id_future.result
Normal file
13
mysql-test/suite/innodb/r/trx_id_future.result
Normal file
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# Bug #20445525 ADD A CONSISTENCY CHECK AGAINST DB_TRX_ID BEING
|
||||
# IN THE FUTURE
|
||||
#
|
||||
CREATE TABLE t1(a INT) row_format=redundant engine=innoDB;
|
||||
INSERT INTO t1 VALUES(1);
|
||||
NOT FOUND /\[Warning\] InnoDB: A transaction id in a record of table `test`\.`t1` is newer than the system-wide maximum/ in mysqld.1.err
|
||||
call mtr.add_suppression("\\[Warning\\] InnoDB: A transaction id in a record of table `test`\\.`t1` is newer than the system-wide maximum");
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
Warnings:
|
||||
Warning 1642 InnoDB: Transaction id in a record of table `test`.`t1` is newer than system-wide maximum.
|
||||
DROP TABLE t1;
|
53
mysql-test/suite/innodb/t/check_ibd_filesize.test
Normal file
53
mysql-test/suite/innodb/t/check_ibd_filesize.test
Normal file
@@ -0,0 +1,53 @@
|
||||
--source include/innodb_page_size.inc
|
||||
--source include/have_sequence.inc
|
||||
|
||||
--echo #
|
||||
--echo # Bug #21950389 SMALL TABLESPACES WITH BLOBS TAKE UP TO 80 TIMES MORE
|
||||
--echo # SPACE IN 5.7 THAN IN 5.6
|
||||
--echo #
|
||||
|
||||
#
|
||||
# Table 1: small rows
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||
let MYSQLD_DATADIR=`select @@datadir`;
|
||||
perl;
|
||||
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
||||
EOF
|
||||
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
|
||||
perl;
|
||||
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
||||
EOF
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Table 2: BLOB
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
|
||||
perl;
|
||||
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
||||
EOF
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
perl;
|
||||
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
||||
EOF
|
||||
DROP TABLE t1;
|
||||
|
||||
let $page_size=`SELECT @@innodb_page_size`;
|
||||
if ($page_size < 32768)
|
||||
{
|
||||
#
|
||||
# Table 3: compressed BLOB
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
|
||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||
perl;
|
||||
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
||||
EOF
|
||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
||||
perl;
|
||||
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
||||
EOF
|
||||
DROP TABLE t1;
|
||||
}
|
10
mysql-test/suite/innodb/t/innodb-system-table-view.opt
Normal file
10
mysql-test/suite/innodb/t/innodb-system-table-view.opt
Normal file
@@ -0,0 +1,10 @@
|
||||
--innodb
|
||||
--innodb-sys-tablespaces
|
||||
--innodb-sys-datafiles
|
||||
--innodb-sys-tablestats
|
||||
--innodb-sys-tables
|
||||
--innodb-sys-columns
|
||||
--innodb-sys-indexes
|
||||
--innodb-sys-fields
|
||||
--innodb-sys-foreign
|
||||
--innodb-sys-foreign-cols
|
139
mysql-test/suite/innodb/t/innodb-system-table-view.test
Normal file
139
mysql-test/suite/innodb/t/innodb-system-table-view.test
Normal file
@@ -0,0 +1,139 @@
|
||||
# This is the test for Information Schema System Table View
|
||||
# that displays the InnoDB system table content through
|
||||
# information schema tables.
|
||||
|
||||
--source include/innodb_page_size_small.inc
|
||||
|
||||
--disable_query_log
|
||||
SET default_storage_engine=InnoDB;
|
||||
LET $MYSQLD_DATADIR = `select @@datadir`;
|
||||
LET $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
|
||||
--enable_query_log
|
||||
|
||||
# The IDs of mysql.innodb_table_stats and mysql.innodb_index_stats may
|
||||
# vary depending on whether the tables have been rebuilt
|
||||
# by previously run tests.
|
||||
SELECT table_id INTO @table_stats_id FROM information_schema.innodb_sys_tables
|
||||
WHERE name = 'mysql/innodb_table_stats';
|
||||
SELECT table_id INTO @index_stats_id FROM information_schema.innodb_sys_tables
|
||||
WHERE name = 'mysql/innodb_index_stats';
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY table_id;
|
||||
|
||||
SELECT table_id,pos,mtype,prtype,len,name
|
||||
FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
|
||||
WHERE table_id NOT IN (@table_stats_id, @index_stats_id)
|
||||
ORDER BY table_id, pos;
|
||||
|
||||
--replace_column 1 # 3 # 6 # 7 #
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
||||
WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY index_id;
|
||||
|
||||
SELECT index_id,pos,name FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS
|
||||
WHERE name NOT IN ('database_name', 'table_name', 'index_name', 'stat_name')
|
||||
ORDER BY index_id, pos;
|
||||
|
||||
--sorted_result
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
||||
--sorted_result
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
||||
|
||||
CREATE TABLE t_redundant (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
|
||||
CREATE TABLE t_compact (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
|
||||
CREATE TABLE t_compressed (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb KEY_BLOCK_SIZE=2;
|
||||
CREATE TABLE t_dynamic (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
|
||||
|
||||
--source suite/innodb/include/show_i_s_tables.inc
|
||||
--source suite/innodb/include/show_i_s_tablespaces.inc
|
||||
|
||||
DROP TABLE t_redundant, t_compact, t_compressed, t_dynamic;
|
||||
|
||||
SELECT count(*) FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
|
||||
|
||||
# Create a foreign key constraint, and verify the information
|
||||
# in INFORMATION_SCHEMA.INNODB_SYS_FOREIGN and
|
||||
# INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS
|
||||
CREATE TABLE parent (id INT NOT NULL,
|
||||
PRIMARY KEY (id)) ENGINE=INNODB;
|
||||
|
||||
CREATE TABLE child (id INT, parent_id INT,
|
||||
INDEX par_ind (parent_id),
|
||||
CONSTRAINT constraint_test
|
||||
FOREIGN KEY (parent_id) REFERENCES parent(id)
|
||||
ON DELETE CASCADE) ENGINE=INNODB;
|
||||
|
||||
--sorted_result
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
||||
|
||||
--sorted_result
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
||||
|
||||
# Insert a row in the table "parent", and see whether that reflected in
|
||||
# INNODB_SYS_TABLESTATS
|
||||
INSERT INTO parent VALUES(1);
|
||||
|
||||
--sorted_result
|
||||
SELECT name, num_rows, ref_count
|
||||
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name LIKE "%parent";
|
||||
|
||||
--sorted_result
|
||||
SELECT NAME, FLAG, N_COLS FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE name NOT LIKE 'sys/%';
|
||||
|
||||
--sorted_result
|
||||
SELECT name, n_fields
|
||||
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
||||
WHERE table_id In (SELECT table_id from
|
||||
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE name LIKE "%parent%");
|
||||
|
||||
--sorted_result
|
||||
SELECT name, n_fields
|
||||
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
||||
WHERE table_id In (SELECT table_id from
|
||||
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE name LIKE "%child%");
|
||||
|
||||
--sorted_result
|
||||
SELECT name, pos, mtype, len
|
||||
from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
|
||||
WHERE table_id In (SELECT table_id from
|
||||
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
||||
WHERE name LIKE "%child%");
|
||||
|
||||
DROP TABLE child;
|
||||
|
||||
DROP TABLE parent;
|
||||
|
||||
# Create table with 2 columns in the foreign key constraint
|
||||
CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL,
|
||||
PRIMARY KEY (id, newid)) ENGINE=INNODB;
|
||||
|
||||
CREATE TABLE child (id INT, parent_id INT,
|
||||
INDEX par_ind (parent_id),
|
||||
CONSTRAINT constraint_test
|
||||
FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid)
|
||||
ON DELETE CASCADE) ENGINE=INNODB;
|
||||
|
||||
--sorted_result
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
||||
|
||||
--sorted_result
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
||||
|
||||
INSERT INTO parent VALUES(1, 9);
|
||||
|
||||
# Nested query will open the table handle twice
|
||||
--sorted_result
|
||||
SELECT * FROM parent WHERE id IN (SELECT id FROM parent);
|
||||
|
||||
--sorted_result
|
||||
SELECT name, num_rows, ref_count
|
||||
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name LIKE "%parent";
|
||||
|
||||
DROP TABLE child;
|
||||
|
||||
DROP TABLE parent;
|
51
mysql-test/suite/innodb/t/innodb-wl5980-debug.test
Normal file
51
mysql-test/suite/innodb/t/innodb-wl5980-debug.test
Normal file
@@ -0,0 +1,51 @@
|
||||
#
|
||||
# This testcase is to check the various debug injection points
|
||||
# to make sure error conditions react corectly and acheive
|
||||
# better code coverage.
|
||||
#
|
||||
|
||||
# Not supported in embedded
|
||||
--source include/not_embedded.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
# These messages are expected in the log
|
||||
call mtr.add_suppression("Cannot find space id [0-9]+ in the tablespace memory cache");
|
||||
call mtr.add_suppression("Cannot rename table 'test/t1' to 'test/t2' since the dictionary cache already contains 'test/t2'.");
|
||||
|
||||
# Set up some variables
|
||||
LET $MYSQL_DATA_DIR = `select @@datadir`;
|
||||
LET $data_directory_clause = DATA DIRECTORY='$MYSQL_TMP_DIR/alt_dir';
|
||||
--enable_query_log
|
||||
|
||||
--echo #
|
||||
--echo # WL5980 Remote tablespace debug error injection tests.
|
||||
--echo #
|
||||
|
||||
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
|
||||
eval CREATE TABLE t1 (a int KEY, b text) ENGINE=Innodb $data_directory_clause ;
|
||||
INSERT INTO t1 VALUES (1, 'tablespace');
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo #
|
||||
--echo # Test the second injection point in fil_rename_tablespace().
|
||||
--echo # Make sure the table is useable after this failure.
|
||||
--echo #
|
||||
SET @save_dbug=@@debug_dbug;
|
||||
SET debug_dbug="+d,fil_rename_tablespace_failure_2";
|
||||
--disable_result_log
|
||||
--error ER_ERROR_ON_RENAME
|
||||
RENAME TABLE t1 TO t2;
|
||||
--enable_result_log
|
||||
SET debug_dbug=@save_dbug;
|
||||
INSERT INTO t1 VALUES (2, 'tablespace');
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo #
|
||||
--echo # Cleanup
|
||||
--echo #
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--rmdir $MYSQL_TMP_DIR/alt_dir/test
|
||||
--rmdir $MYSQL_TMP_DIR/alt_dir
|
58
mysql-test/suite/innodb/t/trx_id_future.test
Normal file
58
mysql-test/suite/innodb/t/trx_id_future.test
Normal file
@@ -0,0 +1,58 @@
|
||||
--echo #
|
||||
--echo # Bug #20445525 ADD A CONSISTENCY CHECK AGAINST DB_TRX_ID BEING
|
||||
--echo # IN THE FUTURE
|
||||
--echo #
|
||||
|
||||
--source include/not_debug.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/not_embedded.inc
|
||||
|
||||
let PAGE_SIZE=`select @@innodb_page_size`;
|
||||
|
||||
CREATE TABLE t1(a INT) row_format=redundant engine=innoDB;
|
||||
INSERT INTO t1 VALUES(1);
|
||||
|
||||
let MYSQLD_DATADIR=`select @@datadir`;
|
||||
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
perl;
|
||||
do "$ENV{MTR_SUITE_DIR}/include/crc32.pl";
|
||||
my $file = "$ENV{MYSQLD_DATADIR}/test/t1.ibd";
|
||||
open(FILE, "+<", $file) || die "Unable to open $file";
|
||||
binmode FILE;
|
||||
|
||||
#Seek the the infimum record and get the offset to next record
|
||||
#Infimum record exist at offset 101 for redundant format
|
||||
#And offset to the next record is present 2 bytes prior to
|
||||
#infimum record
|
||||
|
||||
my $ps= $ENV{PAGE_SIZE};
|
||||
my $page;
|
||||
sysseek(FILE, 3*$ps, 0) || die "Unable to seek $file\n";
|
||||
die "Unable to read $file" unless sysread(FILE, $page, $ps) == $ps;
|
||||
#In this case the first record should be at offset 135
|
||||
die unless unpack("n", substr($page, 99, 2)) == 135;
|
||||
|
||||
substr($page,135+6,6) = "\xff" x 6;
|
||||
|
||||
my $polynomial = 0x82f63b78; # CRC-32C
|
||||
my $ck= pack("N",mycrc32(substr($page, 4, 22), 0, $polynomial) ^
|
||||
mycrc32(substr($page, 38, $ps - 38 - 8), 0, $polynomial));
|
||||
substr($page,0,4)=$ck;
|
||||
substr($page,$ps-8,4)=$ck;
|
||||
sysseek(FILE, 3*$ps, 0) || die "Unable to rewind $file\n";
|
||||
syswrite(FILE, $page, $ps)==$ps || die "Unable to write $file\n";
|
||||
close(FILE) || die "Unable to close $file";
|
||||
EOF
|
||||
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
|
||||
let SEARCH_PATTERN= \[Warning\] InnoDB: A transaction id in a record of table `test`\.`t1` is newer than the system-wide maximum;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
call mtr.add_suppression("\\[Warning\\] InnoDB: A transaction id in a record of table `test`\\.`t1` is newer than the system-wide maximum");
|
||||
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
@@ -3514,9 +3514,15 @@ func_exit:
|
||||
ut_ad(space == fil_space_get_by_name(old_space_name));
|
||||
ut_ad(!fil_space_get_by_name(new_space_name));
|
||||
ut_ad(node->name == old_file_name);
|
||||
|
||||
bool success = os_file_rename(
|
||||
innodb_data_file_key, old_file_name, new_file_name);
|
||||
bool success;
|
||||
DBUG_EXECUTE_IF("fil_rename_tablespace_failure_2",
|
||||
goto skip_second_rename; );
|
||||
success = os_file_rename(innodb_data_file_key,
|
||||
old_file_name,
|
||||
new_file_name);
|
||||
DBUG_EXECUTE_IF("fil_rename_tablespace_failure_2",
|
||||
skip_second_rename:
|
||||
success = false; );
|
||||
|
||||
ut_ad(node->name == old_file_name);
|
||||
|
||||
|
@@ -3262,8 +3262,13 @@ fil_rename_tablespace(
|
||||
space, node, new_name, new_path);
|
||||
|
||||
if (success) {
|
||||
DBUG_EXECUTE_IF("fil_rename_tablespace_failure_2",
|
||||
goto skip_second_rename; );
|
||||
success = os_file_rename(
|
||||
innodb_file_data_key, old_path, new_path);
|
||||
DBUG_EXECUTE_IF("fil_rename_tablespace_failure_2",
|
||||
skip_second_rename:
|
||||
success = FALSE; );
|
||||
|
||||
if (!success) {
|
||||
/* We have to revert the changes we made
|
||||
|
Reference in New Issue
Block a user