mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
4c16ec3e77
In any test that uses wait_all_purged.inc, ensure that InnoDB tables
will be created without persistent statistics.
This is a follow-up to commit cd04673a17
after a similar failure was observed in the innodb_zip.blob test.
205 lines
6.2 KiB
Text
205 lines
6.2 KiB
Text
SET @save_stats_persistent = @@GLOBAL.innodb_stats_persistent;
|
|
SET GLOBAL innodb_stats_persistent = 0;
|
|
FLUSH TABLES;
|
|
# Treating compact format as dynamic format after import stmt
|
|
CREATE TABLE t1
|
|
(a int AUTO_INCREMENT PRIMARY KEY,
|
|
b blob,
|
|
c blob,
|
|
KEY (b(200))) ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
|
BEGIN;
|
|
INSERT INTO t1 (b, c) values (repeat("ab", 200), repeat("bc", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("bc", 200), repeat("cd", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("cd", 200), repeat("ef", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("de", 200), repeat("fg", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("ef", 200), repeat("gh", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("fg", 200), repeat("hi", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("gh", 200), repeat("ij", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("hi", 200), repeat("jk", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("ij", 200), repeat("kl", 200));
|
|
INSERT INTO t1 (b, c) values (repeat("jk", 200), repeat("lm", 200));
|
|
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
|
|
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
|
|
COMMIT;
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
40
|
|
FLUSH TABLE t1 FOR EXPORT;
|
|
# List before copying files
|
|
db.opt
|
|
t1.cfg
|
|
t1.frm
|
|
t1.ibd
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
ALTER TABLE t1 ROW_FORMAT=DYNAMIC;
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
db.opt
|
|
t1.frm
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Internal error: Drop all secondary indexes before importing table test/t1 when .cfg file is missing.
|
|
ALTER TABLE t1 DROP INDEX b;
|
|
Warnings:
|
|
Warning 1814 Tablespace has been discarded for table `t1`
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL AUTO_INCREMENT,
|
|
`b` blob DEFAULT NULL,
|
|
`c` blob DEFAULT NULL,
|
|
PRIMARY KEY (`a`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC
|
|
UPDATE t1 set b = repeat("de", 100) where b = repeat("cd", 200);
|
|
explain SELECT a FROM t1 where b = repeat("de", 100);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where
|
|
SELECT a FROM t1 where b = repeat("de", 100);
|
|
a
|
|
3
|
|
13
|
|
28
|
|
38
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
40
|
|
DELETE FROM t1;
|
|
InnoDB 0 transactions not purged
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1
|
|
(c1 int AUTO_INCREMENT PRIMARY KEY,
|
|
c2 POINT NOT NULL,
|
|
c3 LINESTRING NOT NULL,
|
|
SPATIAL INDEX idx1(c2)) ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
|
INSERT INTO t1(c2,c3) VALUES(
|
|
ST_GeomFromText('POINT(10 10)'),
|
|
ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'));
|
|
INSERT INTO t1(c2,c3) VALUES(
|
|
ST_GeomFromText('POINT(20 20)'),
|
|
ST_GeomFromText('LINESTRING(5 15,20 10,30 20)'));
|
|
INSERT INTO t1(c2,c3) VALUES(
|
|
ST_GeomFromText('POINT(30 30)'),
|
|
ST_GeomFromText('LINESTRING(10 5,20 24,30 32)'));
|
|
INSERT INTO t1(c2,c3) VALUES(
|
|
ST_GeomFromText('POINT(40 40)'),
|
|
ST_GeomFromText('LINESTRING(15 5,25 20,35 30)'));
|
|
INSERT INTO t1(c2,c3) VALUES(
|
|
ST_GeomFromText('POINT(50 10)'),
|
|
ST_GeomFromText('LINESTRING(15 15,24 10,31 20)'));
|
|
INSERT INTO t1(c2,c3) VALUES(
|
|
ST_GeomFromText('POINT(60 50)'),
|
|
ST_GeomFromText('LINESTRING(10 15,20 44,35 32)'));
|
|
BEGIN;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
INSERT INTO t1(c2, c3) SELECT c2, c3 FROM t1;
|
|
COMMIT;
|
|
FLUSH TABLE t1 FOR EXPORT;
|
|
# List before copying files
|
|
db.opt
|
|
t1.cfg
|
|
t1.frm
|
|
t1.ibd
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
ALTER TABLE t1 ROW_FORMAT=DYNAMIC;
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Internal error: Drop all secondary indexes before importing table test/t1 when .cfg file is missing.
|
|
ALTER TABLE t1 DROP INDEX idx1;
|
|
Warnings:
|
|
Warning 1814 Tablespace has been discarded for table `t1`
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
Warnings:
|
|
Warning 1810 IO Read error: (2, No such file or directory) Error opening './test/t1.cfg', will attempt to import without schema verification
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` point NOT NULL,
|
|
`c3` linestring NOT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=16372 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC
|
|
UPDATE t1 SET C2 = ST_GeomFromText('POINT(0 0)');
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
12288
|
|
DELETE FROM t1;
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
InnoDB 0 transactions not purged
|
|
DROP TABLE t1;
|
|
SET @save_algo = @@GLOBAL.innodb_compression_algorithm;
|
|
SET GLOBAL innodb_compression_algorithm=2;
|
|
CREATE TABLE t1(a SERIAL) PAGE_COMPRESSED=1 ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES(1);
|
|
FLUSH TABLE t1 FOR EXPORT;
|
|
# List before copying files
|
|
db.opt
|
|
t1.cfg
|
|
t1.frm
|
|
t1.ibd
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
SET GLOBAL innodb_compression_algorithm=0;
|
|
ALTER TABLE t1 FORCE;
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
db.opt
|
|
t1.frm
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
INSERT INTO t1 VALUES(2);
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
2
|
|
SET GLOBAL innodb_compression_algorithm=3;
|
|
FLUSH TABLE t1 FOR EXPORT;
|
|
# List before copying files
|
|
db.opt
|
|
t1.cfg
|
|
t1.frm
|
|
t1.ibd
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
SET GLOBAL innodb_compression_algorithm=0;
|
|
ALTER TABLE t1 FORCE;
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
# Display the discarded table name by using SPACE and PAGE_NO
|
|
# column in INNODB_SYS_INDEXES and discard doesn't affect the
|
|
# SPACE in INNODB_SYS_TABLES
|
|
SELECT t.NAME, t.SPACE BETWEEN 1 and 0xFFFFFFEF as SYS_TABLE_SPACE_RANGE
|
|
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t
|
|
WHERE t.TABLE_ID IN (
|
|
SELECT i.TABLE_ID FROM
|
|
INFORMATION_SCHEMA.INNODB_SYS_INDEXES i WHERE
|
|
i.PAGE_NO IS NULL and i.SPACE IS NULL);
|
|
NAME SYS_TABLE_SPACE_RANGE
|
|
test/t1 1
|
|
db.opt
|
|
t1.frm
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
INSERT INTO t1 VALUES(3);
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
DROP TABLE t1;
|
|
SET GLOBAL innodb_compression_algorithm=@save_algo;
|
|
SET GLOBAL innodb_stats_persistent = @save_stats_persistent;
|