mirror of
https://github.com/MariaDB/server.git
synced 2026-05-11 09:30:23 +02:00
innodb.row_format_redundant: Really corrupt the SYS_TABLES.MIX_LEN, and do not use any debug instrumentation. For tables created in the system tablespace, the contents of the column will be ignored. Only the table t1 will refuse to load. dict_load_table_one(): Remove the DBUG_EXECUTE_IF instrumentation. Omit a redundant error message "incorrect flags in SYS_TABLES". dict_sys_tables_rec_read(): Partially revert the Oracle Bug#21644827 fix, and always report errors by the return value. fts_create_in_mem_aux_table(): Do not rely on dict_table_t::flags2, but instead evaluate the tablespace ID. DICT_TF2_BITS: Reduce to the correct value of 7. The two extra high-order bits were specific to MySQL 5.7.
79 lines
2.5 KiB
Text
79 lines
2.5 KiB
Text
SET GLOBAL innodb_file_per_table=1;
|
|
#
|
|
# Bug#21644827 - FTS, ASSERT !SRV_READ_ONLY_MODE || M_IMPL.M_LOG_MODE ==
|
|
# MTR_LOG_NO_REDO
|
|
#
|
|
SET GLOBAL innodb_file_per_table=ON;
|
|
create table t1 (a int not null, d varchar(15) not null, b
|
|
varchar(198) not null, c char(156),
|
|
fulltext ftsic(c)) engine=InnoDB
|
|
row_format=redundant;
|
|
insert into t1 values(123, 'abcdef', 'jghikl', 'mnop');
|
|
insert into t1 values(456, 'abcdef', 'jghikl', 'mnop');
|
|
insert into t1 values(789, 'abcdef', 'jghikl', 'mnop');
|
|
insert into t1 values(134, 'kasdfsdsadf', 'adfjlasdkfjasd', 'adfsadflkasdasdfljasdf');
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
SET GLOBAL innodb_file_per_table=OFF;
|
|
create table t2 (a int not null, d varchar(15) not null, b
|
|
varchar(198) not null, c char(156), fulltext ftsic(c)) engine=InnoDB
|
|
row_format=redundant;
|
|
insert into t2 select * from t1;
|
|
create table t3 (a int not null, d varchar(15) not null, b varchar(198),
|
|
c varchar(150), index k1(c(99), b(56)), index k2(b(5), c(10))) engine=InnoDB
|
|
row_format=redundant;
|
|
insert into t3 values(444, 'dddd', 'bbbbb', 'aaaaa');
|
|
insert into t3 values(555, 'eeee', 'ccccc', 'aaaaa');
|
|
SET GLOBAL innodb_fast_shutdown=0;
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
4096
|
|
SELECT COUNT(*) FROM t2;
|
|
COUNT(*)
|
|
4096
|
|
SELECT COUNT(*) FROM t3;
|
|
COUNT(*)
|
|
2
|
|
TRUNCATE TABLE t1;
|
|
ERROR HY000: Table 't1' is read only
|
|
TRUNCATE TABLE t2;
|
|
ERROR HY000: Table 't2' is read only
|
|
TRUNCATE TABLE t3;
|
|
ERROR HY000: Table 't3' is read only
|
|
TRUNCATE TABLE t1;
|
|
TRUNCATE TABLE t2;
|
|
TRUNCATE TABLE t3;
|
|
corrupted SYS_TABLES.MIX_LEN for test/t1
|
|
corrupted SYS_TABLES.MIX_LEN for test/t2
|
|
corrupted SYS_TABLES.MIX_LEN for test/t3
|
|
TRUNCATE TABLE t1;
|
|
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
|
TRUNCATE TABLE t2;
|
|
TRUNCATE TABLE t3;
|
|
SELECT COUNT(*) FROM t1;
|
|
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
|
SELECT COUNT(*) FROM t2;
|
|
COUNT(*)
|
|
0
|
|
SELECT COUNT(*) FROM t3;
|
|
COUNT(*)
|
|
0
|
|
RENAME TABLE t1 TO tee_one;
|
|
ERROR HY000: Error on rename of './test/t1' to './test/tee_one' (errno: 155 "The table does not exist in engine")
|
|
DROP TABLE t1;
|
|
Warnings:
|
|
Warning 1932 Table 'test.t1' doesn't exist in engine
|
|
DROP TABLE t2,t3;
|
|
FOUND 49 /\[ERROR\] InnoDB: Table `test`\.`t1` in InnoDB data dictionary contains invalid flags\. SYS_TABLES.MIX_LEN=255\b/ in mysqld.1.err
|
|
ib_buffer_pool
|
|
ib_logfile0
|
|
ib_logfile1
|
|
ibdata1
|