mirror of
https://github.com/MariaDB/server.git
synced 2026-05-17 12:27:33 +02:00
Merge 10.1 into 10.2
innodb.table_flags: Adjust the test case. Due to the MDEV-12873 fix in 10.2, the corrupted flags for table test.td would be converted, and a tablespace flag mismatch will occur when trying to open the file.
This commit is contained in:
commit
615b1f4189
26 changed files with 812 additions and 149 deletions
105
mysql-test/suite/innodb/r/table_flags,32k.rdiff
Normal file
105
mysql-test/suite/innodb/r/table_flags,32k.rdiff
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
--- suite/innodb/r/table_flags.result
|
||||
+++ suite/innodb/r/table_flags,32k.reject
|
||||
@@ -5,6 +5,8 @@
|
||||
SET innodb_strict_mode=OFF;
|
||||
CREATE TABLE tz(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=COMPRESSED
|
||||
KEY_BLOCK_SIZE=1;
|
||||
+Warnings:
|
||||
+Warning 1478 InnoDB: Cannot create a COMPRESSED table when innodb_page_size > 16k. Assuming ROW_FORMAT=DYNAMIC.
|
||||
SET innodb_strict_mode=ON;
|
||||
CREATE TABLE tp(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC
|
||||
PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=9;
|
||||
@@ -13,7 +15,7 @@
|
||||
header=0x01000003016e (NAME=0x696e66696d756d00)
|
||||
header=0x00002815008d (NAME='SYS_DATAFILES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
- DB_ROLL_PTR=0x81000001320194,
|
||||
+ DB_ROLL_PTR=0x81000001310194,
|
||||
ID=0x000000000000000e,
|
||||
N_COLS=0x00000002,
|
||||
TYPE=0x00000001,
|
||||
@@ -23,7 +25,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x0000101500d5 (NAME='SYS_FOREIGN',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
- DB_ROLL_PTR=0x800000012d0110,
|
||||
+ DB_ROLL_PTR=0x800000012c0110,
|
||||
ID=0x000000000000000b,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
@@ -33,7 +35,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000018150122 (NAME='SYS_FOREIGN_COLS',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
- DB_ROLL_PTR=0x800000012d0201,
|
||||
+ DB_ROLL_PTR=0x800000012c0201,
|
||||
ID=0x000000000000000c,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
@@ -43,7 +45,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x0400201501b8 (NAME='SYS_TABLESPACES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
- DB_ROLL_PTR=0x81000001320110,
|
||||
+ DB_ROLL_PTR=0x81000001310110,
|
||||
ID=0x000000000000000d,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
@@ -53,7 +55,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000030150244 (NAME='SYS_VIRTUAL',
|
||||
DB_TRX_ID=0x000000000304,
|
||||
- DB_ROLL_PTR=0x82000001350110,
|
||||
+ DB_ROLL_PTR=0x82000001340110,
|
||||
ID=0x000000000000000f,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
@@ -63,7 +65,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000040150288 (NAME='test/tc',
|
||||
DB_TRX_ID=0x000000000308,
|
||||
- DB_ROLL_PTR=0x84000001380110,
|
||||
+ DB_ROLL_PTR=0x84000001370110,
|
||||
ID=0x0000000000000011,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000001,
|
||||
@@ -73,7 +75,7 @@
|
||||
SPACE=0x00000002)
|
||||
header=0x000048150310 (NAME='test/td',
|
||||
DB_TRX_ID=0x00000000030a,
|
||||
- DB_ROLL_PTR=0x85000001390110,
|
||||
+ DB_ROLL_PTR=0x85000001380110,
|
||||
ID=0x0000000000000012,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000021,
|
||||
@@ -83,7 +85,7 @@
|
||||
SPACE=0x00000003)
|
||||
header=0x000058150200 (NAME='test/tp',
|
||||
DB_TRX_ID=0x00000000030e,
|
||||
- DB_ROLL_PTR=0x870000013b0110,
|
||||
+ DB_ROLL_PTR=0x870000013a0110,
|
||||
ID=0x0000000000000014,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x000009a1,
|
||||
@@ -93,7 +95,7 @@
|
||||
SPACE=0x00000005)
|
||||
header=0x0000381502cc (NAME='test/tr',
|
||||
DB_TRX_ID=0x000000000306,
|
||||
- DB_ROLL_PTR=0x83000001370110,
|
||||
+ DB_ROLL_PTR=0x83000001360110,
|
||||
ID=0x0000000000000010,
|
||||
N_COLS=0x00000001,
|
||||
TYPE=0x00000001,
|
||||
@@ -103,10 +105,10 @@
|
||||
SPACE=0x00000001)
|
||||
header=0x000050150074 (NAME='test/tz',
|
||||
DB_TRX_ID=0x00000000030c,
|
||||
- DB_ROLL_PTR=0x860000013a0110,
|
||||
+ DB_ROLL_PTR=0x86000001390110,
|
||||
ID=0x0000000000000013,
|
||||
N_COLS=0x80000001,
|
||||
- TYPE=0x00000023,
|
||||
+ TYPE=0x00000021,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000050,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
92
mysql-test/suite/innodb/r/table_flags,4k.rdiff
Normal file
92
mysql-test/suite/innodb/r/table_flags,4k.rdiff
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
--- suite/innodb/r/table_flags.result
|
||||
+++ suite/innodb/r/table_flags,4k.reject
|
||||
@@ -13,7 +13,7 @@
|
||||
header=0x01000003016e (NAME=0x696e66696d756d00)
|
||||
header=0x00002815008d (NAME='SYS_DATAFILES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
- DB_ROLL_PTR=0x81000001320194,
|
||||
+ DB_ROLL_PTR=0x81000003260194,
|
||||
ID=0x000000000000000e,
|
||||
N_COLS=0x00000002,
|
||||
TYPE=0x00000001,
|
||||
@@ -23,7 +23,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x0000101500d5 (NAME='SYS_FOREIGN',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
- DB_ROLL_PTR=0x800000012d0110,
|
||||
+ DB_ROLL_PTR=0x80000003200110,
|
||||
ID=0x000000000000000b,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
@@ -33,7 +33,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000018150122 (NAME='SYS_FOREIGN_COLS',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
- DB_ROLL_PTR=0x800000012d0201,
|
||||
+ DB_ROLL_PTR=0x80000003200201,
|
||||
ID=0x000000000000000c,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
@@ -43,7 +43,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x0400201501b8 (NAME='SYS_TABLESPACES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
- DB_ROLL_PTR=0x81000001320110,
|
||||
+ DB_ROLL_PTR=0x81000003260110,
|
||||
ID=0x000000000000000d,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
@@ -53,7 +53,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000030150244 (NAME='SYS_VIRTUAL',
|
||||
DB_TRX_ID=0x000000000304,
|
||||
- DB_ROLL_PTR=0x82000001350110,
|
||||
+ DB_ROLL_PTR=0x820000032a0110,
|
||||
ID=0x000000000000000f,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
@@ -63,7 +63,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000040150288 (NAME='test/tc',
|
||||
DB_TRX_ID=0x000000000308,
|
||||
- DB_ROLL_PTR=0x84000001380110,
|
||||
+ DB_ROLL_PTR=0x840000032d0110,
|
||||
ID=0x0000000000000011,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000001,
|
||||
@@ -73,7 +73,7 @@
|
||||
SPACE=0x00000002)
|
||||
header=0x000048150310 (NAME='test/td',
|
||||
DB_TRX_ID=0x00000000030a,
|
||||
- DB_ROLL_PTR=0x85000001390110,
|
||||
+ DB_ROLL_PTR=0x850000032f0110,
|
||||
ID=0x0000000000000012,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000021,
|
||||
@@ -83,7 +83,7 @@
|
||||
SPACE=0x00000003)
|
||||
header=0x000058150200 (NAME='test/tp',
|
||||
DB_TRX_ID=0x00000000030e,
|
||||
- DB_ROLL_PTR=0x870000013b0110,
|
||||
+ DB_ROLL_PTR=0x87000003310110,
|
||||
ID=0x0000000000000014,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x000009a1,
|
||||
@@ -93,7 +93,7 @@
|
||||
SPACE=0x00000005)
|
||||
header=0x0000381502cc (NAME='test/tr',
|
||||
DB_TRX_ID=0x000000000306,
|
||||
- DB_ROLL_PTR=0x83000001370110,
|
||||
+ DB_ROLL_PTR=0x830000032c0110,
|
||||
ID=0x0000000000000010,
|
||||
N_COLS=0x00000001,
|
||||
TYPE=0x00000001,
|
||||
@@ -103,7 +103,7 @@
|
||||
SPACE=0x00000001)
|
||||
header=0x000050150074 (NAME='test/tz',
|
||||
DB_TRX_ID=0x00000000030c,
|
||||
- DB_ROLL_PTR=0x860000013a0110,
|
||||
+ DB_ROLL_PTR=0x86000003300110,
|
||||
ID=0x0000000000000013,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000023,
|
||||
105
mysql-test/suite/innodb/r/table_flags,64k.rdiff
Normal file
105
mysql-test/suite/innodb/r/table_flags,64k.rdiff
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
--- suite/innodb/r/table_flags.result
|
||||
+++ suite/innodb/r/table_flags,64k.reject
|
||||
@@ -5,6 +5,8 @@
|
||||
SET innodb_strict_mode=OFF;
|
||||
CREATE TABLE tz(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=COMPRESSED
|
||||
KEY_BLOCK_SIZE=1;
|
||||
+Warnings:
|
||||
+Warning 1478 InnoDB: Cannot create a COMPRESSED table when innodb_page_size > 16k. Assuming ROW_FORMAT=DYNAMIC.
|
||||
SET innodb_strict_mode=ON;
|
||||
CREATE TABLE tp(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC
|
||||
PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=9;
|
||||
@@ -13,7 +15,7 @@
|
||||
header=0x01000003016e (NAME=0x696e66696d756d00)
|
||||
header=0x00002815008d (NAME='SYS_DATAFILES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
- DB_ROLL_PTR=0x81000001320194,
|
||||
+ DB_ROLL_PTR=0x81000001310194,
|
||||
ID=0x000000000000000e,
|
||||
N_COLS=0x00000002,
|
||||
TYPE=0x00000001,
|
||||
@@ -23,7 +25,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x0000101500d5 (NAME='SYS_FOREIGN',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
- DB_ROLL_PTR=0x800000012d0110,
|
||||
+ DB_ROLL_PTR=0x800000012c0110,
|
||||
ID=0x000000000000000b,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
@@ -33,7 +35,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000018150122 (NAME='SYS_FOREIGN_COLS',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
- DB_ROLL_PTR=0x800000012d0201,
|
||||
+ DB_ROLL_PTR=0x800000012c0201,
|
||||
ID=0x000000000000000c,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
@@ -43,7 +45,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x0400201501b8 (NAME='SYS_TABLESPACES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
- DB_ROLL_PTR=0x81000001320110,
|
||||
+ DB_ROLL_PTR=0x81000001310110,
|
||||
ID=0x000000000000000d,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
@@ -53,7 +55,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000030150244 (NAME='SYS_VIRTUAL',
|
||||
DB_TRX_ID=0x000000000304,
|
||||
- DB_ROLL_PTR=0x82000001350110,
|
||||
+ DB_ROLL_PTR=0x82000001340110,
|
||||
ID=0x000000000000000f,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
@@ -63,7 +65,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000040150288 (NAME='test/tc',
|
||||
DB_TRX_ID=0x000000000308,
|
||||
- DB_ROLL_PTR=0x84000001380110,
|
||||
+ DB_ROLL_PTR=0x84000001370110,
|
||||
ID=0x0000000000000011,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000001,
|
||||
@@ -73,7 +75,7 @@
|
||||
SPACE=0x00000002)
|
||||
header=0x000048150310 (NAME='test/td',
|
||||
DB_TRX_ID=0x00000000030a,
|
||||
- DB_ROLL_PTR=0x85000001390110,
|
||||
+ DB_ROLL_PTR=0x85000001380110,
|
||||
ID=0x0000000000000012,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000021,
|
||||
@@ -83,7 +85,7 @@
|
||||
SPACE=0x00000003)
|
||||
header=0x000058150200 (NAME='test/tp',
|
||||
DB_TRX_ID=0x00000000030e,
|
||||
- DB_ROLL_PTR=0x870000013b0110,
|
||||
+ DB_ROLL_PTR=0x870000013a0110,
|
||||
ID=0x0000000000000014,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x000009a1,
|
||||
@@ -93,7 +95,7 @@
|
||||
SPACE=0x00000005)
|
||||
header=0x0000381502cc (NAME='test/tr',
|
||||
DB_TRX_ID=0x000000000306,
|
||||
- DB_ROLL_PTR=0x83000001370110,
|
||||
+ DB_ROLL_PTR=0x83000001360110,
|
||||
ID=0x0000000000000010,
|
||||
N_COLS=0x00000001,
|
||||
TYPE=0x00000001,
|
||||
@@ -103,10 +105,10 @@
|
||||
SPACE=0x00000001)
|
||||
header=0x000050150074 (NAME='test/tz',
|
||||
DB_TRX_ID=0x00000000030c,
|
||||
- DB_ROLL_PTR=0x860000013a0110,
|
||||
+ DB_ROLL_PTR=0x86000001390110,
|
||||
ID=0x0000000000000013,
|
||||
N_COLS=0x80000001,
|
||||
- TYPE=0x00000023,
|
||||
+ TYPE=0x00000021,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000050,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
92
mysql-test/suite/innodb/r/table_flags,8k.rdiff
Normal file
92
mysql-test/suite/innodb/r/table_flags,8k.rdiff
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
--- suite/innodb/r/table_flags.result
|
||||
+++ suite/innodb/r/table_flags,8k.reject
|
||||
@@ -13,7 +13,7 @@
|
||||
header=0x01000003016e (NAME=0x696e66696d756d00)
|
||||
header=0x00002815008d (NAME='SYS_DATAFILES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
- DB_ROLL_PTR=0x81000001320194,
|
||||
+ DB_ROLL_PTR=0x81000001d70194,
|
||||
ID=0x000000000000000e,
|
||||
N_COLS=0x00000002,
|
||||
TYPE=0x00000001,
|
||||
@@ -23,7 +23,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x0000101500d5 (NAME='SYS_FOREIGN',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
- DB_ROLL_PTR=0x800000012d0110,
|
||||
+ DB_ROLL_PTR=0x80000001d10110,
|
||||
ID=0x000000000000000b,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
@@ -33,7 +33,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000018150122 (NAME='SYS_FOREIGN_COLS',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
- DB_ROLL_PTR=0x800000012d0201,
|
||||
+ DB_ROLL_PTR=0x80000001d10201,
|
||||
ID=0x000000000000000c,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
@@ -43,7 +43,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x0400201501b8 (NAME='SYS_TABLESPACES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
- DB_ROLL_PTR=0x81000001320110,
|
||||
+ DB_ROLL_PTR=0x81000001d70110,
|
||||
ID=0x000000000000000d,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
@@ -53,7 +53,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000030150244 (NAME='SYS_VIRTUAL',
|
||||
DB_TRX_ID=0x000000000304,
|
||||
- DB_ROLL_PTR=0x82000001350110,
|
||||
+ DB_ROLL_PTR=0x82000001da0110,
|
||||
ID=0x000000000000000f,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
@@ -63,7 +63,7 @@
|
||||
SPACE=0x00000000)
|
||||
header=0x000040150288 (NAME='test/tc',
|
||||
DB_TRX_ID=0x000000000308,
|
||||
- DB_ROLL_PTR=0x84000001380110,
|
||||
+ DB_ROLL_PTR=0x84000001dd0110,
|
||||
ID=0x0000000000000011,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000001,
|
||||
@@ -73,7 +73,7 @@
|
||||
SPACE=0x00000002)
|
||||
header=0x000048150310 (NAME='test/td',
|
||||
DB_TRX_ID=0x00000000030a,
|
||||
- DB_ROLL_PTR=0x85000001390110,
|
||||
+ DB_ROLL_PTR=0x85000001de0110,
|
||||
ID=0x0000000000000012,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000021,
|
||||
@@ -83,7 +83,7 @@
|
||||
SPACE=0x00000003)
|
||||
header=0x000058150200 (NAME='test/tp',
|
||||
DB_TRX_ID=0x00000000030e,
|
||||
- DB_ROLL_PTR=0x870000013b0110,
|
||||
+ DB_ROLL_PTR=0x87000001e00110,
|
||||
ID=0x0000000000000014,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x000009a1,
|
||||
@@ -93,7 +93,7 @@
|
||||
SPACE=0x00000005)
|
||||
header=0x0000381502cc (NAME='test/tr',
|
||||
DB_TRX_ID=0x000000000306,
|
||||
- DB_ROLL_PTR=0x83000001370110,
|
||||
+ DB_ROLL_PTR=0x83000001dc0110,
|
||||
ID=0x0000000000000010,
|
||||
N_COLS=0x00000001,
|
||||
TYPE=0x00000001,
|
||||
@@ -103,7 +103,7 @@
|
||||
SPACE=0x00000001)
|
||||
header=0x000050150074 (NAME='test/tz',
|
||||
DB_TRX_ID=0x00000000030c,
|
||||
- DB_ROLL_PTR=0x860000013a0110,
|
||||
+ DB_ROLL_PTR=0x86000001df0110,
|
||||
ID=0x0000000000000013,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000023,
|
||||
181
mysql-test/suite/innodb/r/table_flags.result
Normal file
181
mysql-test/suite/innodb/r/table_flags.result
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
SET GLOBAL innodb_file_per_table=1;
|
||||
CREATE TABLE tr(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
|
||||
CREATE TABLE tc(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
||||
CREATE TABLE td(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
||||
SET innodb_strict_mode=OFF;
|
||||
CREATE TABLE tz(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=COMPRESSED
|
||||
KEY_BLOCK_SIZE=1;
|
||||
SET innodb_strict_mode=ON;
|
||||
CREATE TABLE tp(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC
|
||||
PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=9;
|
||||
SYS_TABLES clustered index root page (8):
|
||||
N_RECS=10; LEVEL=0; INDEX_ID=0x0000000000000001
|
||||
header=0x01000003016e (NAME=0x696e66696d756d00)
|
||||
header=0x00002815008d (NAME='SYS_DATAFILES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
DB_ROLL_PTR=0x81000001320194,
|
||||
ID=0x000000000000000e,
|
||||
N_COLS=0x00000002,
|
||||
TYPE=0x00000001,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000040,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000000)
|
||||
header=0x0000101500d5 (NAME='SYS_FOREIGN',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
DB_ROLL_PTR=0x800000012d0110,
|
||||
ID=0x000000000000000b,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000040,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000000)
|
||||
header=0x000018150122 (NAME='SYS_FOREIGN_COLS',
|
||||
DB_TRX_ID=0x000000000300,
|
||||
DB_ROLL_PTR=0x800000012d0201,
|
||||
ID=0x000000000000000c,
|
||||
N_COLS=0x00000004,
|
||||
TYPE=0x00000001,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000040,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000000)
|
||||
header=0x0400201501b8 (NAME='SYS_TABLESPACES',
|
||||
DB_TRX_ID=0x000000000302,
|
||||
DB_ROLL_PTR=0x81000001320110,
|
||||
ID=0x000000000000000d,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000040,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000000)
|
||||
header=0x000030150244 (NAME='SYS_VIRTUAL',
|
||||
DB_TRX_ID=0x000000000304,
|
||||
DB_ROLL_PTR=0x82000001350110,
|
||||
ID=0x000000000000000f,
|
||||
N_COLS=0x00000003,
|
||||
TYPE=0x00000001,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000040,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000000)
|
||||
header=0x000040150288 (NAME='test/tc',
|
||||
DB_TRX_ID=0x000000000308,
|
||||
DB_ROLL_PTR=0x84000001380110,
|
||||
ID=0x0000000000000011,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000001,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000050,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000002)
|
||||
header=0x000048150310 (NAME='test/td',
|
||||
DB_TRX_ID=0x00000000030a,
|
||||
DB_ROLL_PTR=0x85000001390110,
|
||||
ID=0x0000000000000012,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000021,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000050,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000003)
|
||||
header=0x000058150200 (NAME='test/tp',
|
||||
DB_TRX_ID=0x00000000030e,
|
||||
DB_ROLL_PTR=0x870000013b0110,
|
||||
ID=0x0000000000000014,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x000009a1,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000050,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000005)
|
||||
header=0x0000381502cc (NAME='test/tr',
|
||||
DB_TRX_ID=0x000000000306,
|
||||
DB_ROLL_PTR=0x83000001370110,
|
||||
ID=0x0000000000000010,
|
||||
N_COLS=0x00000001,
|
||||
TYPE=0x00000001,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000050,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000001)
|
||||
header=0x000050150074 (NAME='test/tz',
|
||||
DB_TRX_ID=0x00000000030c,
|
||||
DB_ROLL_PTR=0x860000013a0110,
|
||||
ID=0x0000000000000013,
|
||||
N_COLS=0x80000001,
|
||||
TYPE=0x00000023,
|
||||
MIX_ID=0x0000000000000000,
|
||||
MIX_LEN=0x00000050,
|
||||
CLUSTER_NAME=NULL(0 bytes),
|
||||
SPACE=0x00000004)
|
||||
header=0x070008030000 (NAME=0x73757072656d756d00)
|
||||
SHOW CREATE TABLE tr;
|
||||
ERROR 42S02: Table 'test.tr' doesn't exist in engine
|
||||
SHOW CREATE TABLE tc;
|
||||
ERROR 42S02: Table 'test.tc' doesn't exist in engine
|
||||
SHOW CREATE TABLE td;
|
||||
ERROR 42S02: Table 'test.td' doesn't exist in engine
|
||||
SHOW CREATE TABLE tz;
|
||||
ERROR 42S02: Table 'test.tz' doesn't exist in engine
|
||||
SHOW CREATE TABLE tp;
|
||||
ERROR 42S02: Table 'test.tp' doesn't exist in engine
|
||||
FOUND 6 /InnoDB: Table `test`.`t[czp]` in InnoDB data dictionary contains invalid flags\. SYS_TABLES\.TYPE=(129|289|3873|1232[13]) SYS_TABLES\.N_COLS=2147483649/ in mysqld.1.err
|
||||
FOUND 2 /InnoDB: Refusing to load '\..test.td\.ibd' \(id=3, flags=0x1?[2ae]1\); dictionary contains id=3, flags=0x10[01][2ae]1\b/ in mysqld.1.err
|
||||
FOUND 2 /InnoDB: Table `test`\.`tr` in InnoDB data dictionary contains invalid flags\. SYS_TABLES\.TYPE=65 SYS_TABLES\.MIX_LEN=4294967295\b/ in mysqld.1.err
|
||||
Restoring SYS_TABLES clustered index root page (8)
|
||||
SHOW CREATE TABLE tr;
|
||||
Table Create Table
|
||||
tr CREATE TABLE `tr` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
|
||||
SHOW CREATE TABLE tc;
|
||||
Table Create Table
|
||||
tc CREATE TABLE `tc` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
|
||||
SHOW CREATE TABLE td;
|
||||
Table Create Table
|
||||
td CREATE TABLE `td` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
|
||||
SHOW CREATE TABLE tz;
|
||||
Table Create Table
|
||||
tz CREATE TABLE `tz` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1
|
||||
SHOW CREATE TABLE tp;
|
||||
Table Create Table
|
||||
tp CREATE TABLE `tp` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=9
|
||||
BEGIN;
|
||||
INSERT INTO tr VALUES(1);
|
||||
INSERT INTO tc VALUES(1);
|
||||
INSERT INTO td VALUES(1);
|
||||
INSERT INTO tz VALUES(1);
|
||||
INSERT INTO tp VALUES(1);
|
||||
ROLLBACK;
|
||||
SELECT * FROM tr;
|
||||
a
|
||||
SELECT * FROM tc;
|
||||
a
|
||||
SELECT * FROM td;
|
||||
a
|
||||
SELECT * FROM tz;
|
||||
a
|
||||
SELECT * FROM tp;
|
||||
a
|
||||
DROP TABLE tr,tc,td,tz,tp;
|
||||
ib_buffer_pool
|
||||
ib_logfile0
|
||||
ib_logfile1
|
||||
ibdata1
|
||||
sys_tables.bin
|
||||
199
mysql-test/suite/innodb/t/table_flags.test
Normal file
199
mysql-test/suite/innodb/t/table_flags.test
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
--source include/innodb_page_size.inc
|
||||
# Embedded server tests do not support restarting
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--disable_query_log
|
||||
call mtr.add_suppression("InnoDB: Table `mysql`\\.`innodb_table_stats` not found");
|
||||
call mtr.add_suppression("InnoDB: incorrect flags in SYS_TABLES");
|
||||
call mtr.add_suppression("InnoDB: Table `test`.`t[czp]` in InnoDB data dictionary contains invalid flags\\. SYS_TABLES\\.TYPE=(129|289|3873|1232[31]) SYS_TABLES\\.N_COLS=2147483649\\r?$");
|
||||
call mtr.add_suppression("InnoDB: Table `test`\\.`tr` in InnoDB data dictionary contains invalid flags\\. SYS_TABLES\\.TYPE=65 SYS_TABLES\\.MIX_LEN=4294967295\\r?$");
|
||||
call mtr.add_suppression("InnoDB: Refusing to load '\\..test.td\\.ibd' \\(id=3, flags=0x([2e]1)\\); dictionary contains id=3, flags=0x100\\1\\r?$");
|
||||
call mtr.add_suppression("InnoDB: Refusing to load '\\..test.td\\.ibd' \\(id=3, flags=0x(1[2ae]1)\\); dictionary contains id=3, flags=0x10\\1\\r?$");
|
||||
call mtr.add_suppression("InnoDB: Ignoring tablespace for `test`.`td` because it could not be opened\\.");
|
||||
# FIXME: Remove the following spam due to invalid flags for test.td
|
||||
call mtr.add_suppression("InnoDB: Operating system error number .* in a file operation");
|
||||
call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified");
|
||||
call mtr.add_suppression("InnoDB: If you are installing InnoDB, remember that you must create directories yourself");
|
||||
FLUSH TABLES;
|
||||
--enable_query_log
|
||||
|
||||
let INNODB_PAGE_SIZE=`select @@innodb_page_size`;
|
||||
let MYSQLD_DATADIR=`select @@datadir`;
|
||||
|
||||
let bugdir= $MYSQLTEST_VARDIR/tmp/table_flags;
|
||||
--mkdir $bugdir
|
||||
--let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err
|
||||
|
||||
--let $d=--innodb-data-home-dir=$bugdir --innodb-log-group-home-dir=$bugdir
|
||||
--let $d=$d --innodb-data-file-path=ibdata1:1M:autoextend
|
||||
--let $d=$d --innodb-undo-tablespaces=0
|
||||
--let $restart_parameters=$d --innodb-stats-persistent=0 --innodb-file-format=1
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
SET GLOBAL innodb_file_per_table=1;
|
||||
CREATE TABLE tr(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
|
||||
CREATE TABLE tc(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
||||
CREATE TABLE td(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
||||
SET innodb_strict_mode=OFF;
|
||||
CREATE TABLE tz(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=COMPRESSED
|
||||
KEY_BLOCK_SIZE=1;
|
||||
SET innodb_strict_mode=ON;
|
||||
# PAGE_COMPRESSED is supported starting with MariaDB 10.1.0
|
||||
CREATE TABLE tp(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC
|
||||
PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=9;
|
||||
|
||||
--source include/shutdown_mysqld.inc
|
||||
--perl
|
||||
use strict;
|
||||
my $ps= $ENV{INNODB_PAGE_SIZE};
|
||||
my $file= "$ENV{bugdir}/ibdata1";
|
||||
open(FILE, "+<", $file) || die "Unable to open $file\n";
|
||||
# Read DICT_HDR_TABLES, the root page number of CLUST_IND (SYS_TABLES.NAME).
|
||||
sysseek(FILE, 7*$ps+38+32, 0) || die "Unable to seek $file";
|
||||
die "Unable to read $file" unless sysread(FILE, $_, 4) == 4;
|
||||
my $sys_tables_root = unpack("N", $_);
|
||||
my $page;
|
||||
print "SYS_TABLES clustered index root page ($sys_tables_root):\n";
|
||||
sysseek(FILE, $sys_tables_root*$ps, 0) || die "Unable to seek $file";
|
||||
die "Unable to read $file" unless sysread(FILE, $page, $ps) == $ps;
|
||||
open(BACKUP, ">$ENV{bugdir}/sys_tables.bin") || die "Unable to open backup\n";
|
||||
syswrite(BACKUP, $page, $ps)==$ps || die "Unable to write backup\n";
|
||||
close(BACKUP) || die "Unable to close backup\n";
|
||||
print "N_RECS=", unpack("n", substr($page,38+16,2));
|
||||
print "; LEVEL=", unpack("n", substr($page,38+26,2));
|
||||
print "; INDEX_ID=0x", unpack("H*", substr($page,38+28,8)), "\n";
|
||||
my @fields=("NAME","DB_TRX_ID","DB_ROLL_PTR",
|
||||
"ID","N_COLS","TYPE","MIX_ID","MIX_LEN","CLUSTER_NAME","SPACE");
|
||||
for (my $offset= 0x65; $offset;
|
||||
$offset= unpack("n", substr($page,$offset-2,2)))
|
||||
{
|
||||
print "header=0x", unpack("H*",substr($page,$offset-6,6)), " (";
|
||||
my $n_fields= unpack("n", substr($page,$offset-4,2)) >> 1 & 0x3ff;
|
||||
my $start= 0;
|
||||
my $name;
|
||||
for (my $i= 0; $i < $n_fields; $i++) {
|
||||
my $end= unpack("C", substr($page, $offset-7-$i, 1));
|
||||
print ",\n " if $i;
|
||||
print "$fields[$i]=";
|
||||
if ($end & 0x80) {
|
||||
print "NULL(", ($end & 0x7f) - $start, " bytes)"
|
||||
} elsif ($n_fields > 1 && $i == 0) {
|
||||
$name= substr($page,$offset+$start,$end-$start);
|
||||
print "'$name'"
|
||||
} else {
|
||||
print "0x", unpack("H*", substr($page,$offset+$start,$end-$start))
|
||||
}
|
||||
# Corrupt SYS_TABLES.TYPE
|
||||
if ($i == 5)
|
||||
{
|
||||
my $flags= 0;
|
||||
if ($name eq 'test/tr') {
|
||||
$flags= 0x40 # DATA_DIR (largely ignored by 10.1+)
|
||||
} elsif ($name eq 'test/tc') {
|
||||
$flags= 0x80 # 10.1 PAGE_COMPRESSED
|
||||
} elsif ($name eq 'test/td') {
|
||||
$flags= 0xf00 # PAGE_COMPRESSION_LEVEL=15 (0..9 is valid)
|
||||
# As part of the MDEV-12873 fix, because the
|
||||
# PAGE_COMPRESSED=YES flag was not set, we will assume that
|
||||
# this table was actually created with 10.2.2..10.2.6
|
||||
# using PAGE_COMPRESSED=YES PAGE_COMPRESSION_LEVEL=7.
|
||||
} elsif ($name eq 'test/tz') {
|
||||
$flags= 0x3000 # 10.1 ATOMIC_WRITES=3 (0..2 is valid)
|
||||
} elsif ($name eq 'test/tp') {
|
||||
$flags= 0x880 # 10.1 PAGE_COMPRESSED, PAGE_COMPRESSION_LEVEL=8
|
||||
# (in 10.2.2 through 10.2.6, this is interpreted as
|
||||
# PAGE_COMPRESSION_LEVEL=4 without PAGE_COMPRESSED
|
||||
# but with SHARED_SPACE, which should be invalid)
|
||||
}
|
||||
|
||||
substr($page,$offset+$start,$end-$start)= pack(
|
||||
"N", $flags ^
|
||||
unpack("N", substr($page,$offset+$start,$end-$start)))
|
||||
if $flags;
|
||||
}
|
||||
# Corrupt SYS_TABLES.MIX_LEN (ignored for ROW_FORMAT=REDUNDANT)
|
||||
if ($i == 7 && $name eq 'test/tr')
|
||||
{
|
||||
substr($page,$offset+$start,$end-$start)= chr(255) x 4;
|
||||
}
|
||||
$start= $end & 0x7f;
|
||||
}
|
||||
print ")\n";
|
||||
}
|
||||
substr($page,0,4)=pack("N",0xdeadbeef);
|
||||
substr($page,$ps-8,4)=pack("N",0xdeadbeef);
|
||||
sysseek(FILE, $sys_tables_root*$ps, 0) || die "Unable to seek $file";
|
||||
syswrite(FILE, $page, $ps)==$ps || die "Unable to write $file\n";
|
||||
close(FILE) || die "Unable to close $file\n";
|
||||
EOF
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
||||
SHOW CREATE TABLE tr;
|
||||
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
||||
SHOW CREATE TABLE tc;
|
||||
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
||||
SHOW CREATE TABLE td;
|
||||
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
||||
SHOW CREATE TABLE tz;
|
||||
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
||||
SHOW CREATE TABLE tp;
|
||||
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
|
||||
--let SEARCH_PATTERN= InnoDB: Table `test`.`t[czp]` in InnoDB data dictionary contains invalid flags\. SYS_TABLES\.TYPE=(129|289|3873|1232[13]) SYS_TABLES\.N_COLS=2147483649
|
||||
--source include/search_pattern_in_file.inc
|
||||
--let SEARCH_PATTERN= InnoDB: Refusing to load '\..test.td\.ibd' \(id=3, flags=0x1?[2ae]1\); dictionary contains id=3, flags=0x10[01][2ae]1\b
|
||||
--source include/search_pattern_in_file.inc
|
||||
--let SEARCH_PATTERN= InnoDB: Table `test`\.`tr` in InnoDB data dictionary contains invalid flags\. SYS_TABLES\.TYPE=65 SYS_TABLES\.MIX_LEN=4294967295\b
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
# Restore the backup of the corrupted SYS_TABLES clustered index root page
|
||||
--perl
|
||||
use strict;
|
||||
my $ps= $ENV{INNODB_PAGE_SIZE};
|
||||
my $file= "$ENV{bugdir}/ibdata1";
|
||||
open(FILE, "+<", $file) || die "Unable to open $file\n";
|
||||
open(BACKUP, "<$ENV{bugdir}/sys_tables.bin") || die "Unable to open backup\n";
|
||||
# Read DICT_HDR_TABLES, the root page number of CLUST_IND (SYS_TABLES.NAME).
|
||||
sysseek(FILE, 7*$ps+38+32, 0) || die "Unable to seek $file";
|
||||
die "Unable to read $file\n" unless sysread(FILE, $_, 4) == 4;
|
||||
my $sys_tables_root = unpack("N", $_);
|
||||
print "Restoring SYS_TABLES clustered index root page ($sys_tables_root)\n";
|
||||
sysseek(FILE, $sys_tables_root*$ps, 0) || die "Unable to seek $file";
|
||||
die "Unable to read backup\n" unless sysread(BACKUP, $_, $ps) == $ps;
|
||||
die "Unable to restore backup\n" unless syswrite(FILE, $_, $ps) == $ps;
|
||||
close(BACKUP);
|
||||
close(FILE) || die "Unable to close $file\n";
|
||||
EOF
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
SHOW CREATE TABLE tr;
|
||||
SHOW CREATE TABLE tc;
|
||||
SHOW CREATE TABLE td;
|
||||
SHOW CREATE TABLE tz;
|
||||
SHOW CREATE TABLE tp;
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO tr VALUES(1);
|
||||
INSERT INTO tc VALUES(1);
|
||||
INSERT INTO td VALUES(1);
|
||||
INSERT INTO tz VALUES(1);
|
||||
INSERT INTO tp VALUES(1);
|
||||
ROLLBACK;
|
||||
|
||||
SELECT * FROM tr;
|
||||
SELECT * FROM tc;
|
||||
SELECT * FROM td;
|
||||
SELECT * FROM tz;
|
||||
SELECT * FROM tp;
|
||||
|
||||
DROP TABLE tr,tc,td,tz,tp;
|
||||
|
||||
--let $restart_parameters=
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
--list_files $bugdir
|
||||
--remove_files_wildcard $bugdir
|
||||
--rmdir $bugdir
|
||||
Loading…
Add table
Add a link
Reference in a new issue