mirror of
https://github.com/MariaDB/server.git
synced 2025-12-25 13:45:47 +01:00
91 lines
2.5 KiB
Text
91 lines
2.5 KiB
Text
# DDL churn + partitions in InnoDB and MyISAM
|
|
INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN';
|
|
SELECT PLUGIN_NAME, PLUGIN_STATUS
|
|
FROM INFORMATION_SCHEMA.PLUGINS
|
|
WHERE PLUGIN_NAME LIKE '%clone%';
|
|
PLUGIN_NAME PLUGIN_STATUS
|
|
clone ACTIVE
|
|
DROP TABLE IF EXISTS t1, t2, p, isam_t1, isam_t2, isam_p;
|
|
Warnings:
|
|
Note 1051 Unknown table 'test.t1,test.t2,test.p,test.isam_t1,test.isam_t2,test.isam_p'
|
|
CREATE TABLE t1(a INT) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1),(2),(3);
|
|
CREATE TABLE t2(a INT) ENGINE=InnoDB;
|
|
INSERT INTO t2 VALUES (4),(5),(6);
|
|
CREATE TABLE p(a INT)
|
|
ENGINE=InnoDB
|
|
PARTITION BY RANGE (a)
|
|
(
|
|
PARTITION p0 VALUES LESS THAN (100),
|
|
PARTITION p1 VALUES LESS THAN (200),
|
|
PARTITION p2 VALUES LESS THAN (300),
|
|
PARTITION p3 VALUES LESS THAN (400)
|
|
);
|
|
INSERT INTO p VALUES (1),(101),(201),(301);
|
|
CREATE TABLE isam_t1(a INT) ENGINE=MyISAM;
|
|
INSERT INTO isam_t1 VALUES (1),(2),(3);
|
|
CREATE TABLE isam_t2(a INT) ENGINE=MyISAM;
|
|
INSERT INTO isam_t2 VALUES (4),(5),(6);
|
|
CREATE TABLE isam_p(a INT)
|
|
ENGINE=MyISAM
|
|
PARTITION BY RANGE (a)
|
|
(
|
|
PARTITION p0 VALUES LESS THAN (100),
|
|
PARTITION p1 VALUES LESS THAN (200),
|
|
PARTITION p2 VALUES LESS THAN (300),
|
|
PARTITION p3 VALUES LESS THAN (400)
|
|
);
|
|
INSERT INTO isam_p VALUES (1),(101),(201),(301);
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2(a INT) ENGINE=InnoDB;
|
|
INSERT INTO t2 VALUES (40),(50),(60);
|
|
ALTER TABLE p DROP PARTITION p0;
|
|
ALTER TABLE p DROP PARTITION p1;
|
|
ALTER TABLE p ADD PARTITION (PARTITION p4 VALUES LESS THAN (500));
|
|
ALTER TABLE p ADD PARTITION (PARTITION p5 VALUES LESS THAN (600));
|
|
INSERT INTO p VALUES (401),(501);
|
|
DROP TABLE isam_t1;
|
|
DROP TABLE isam_t2;
|
|
CREATE TABLE isam_t2(a INT) ENGINE=MyISAM;
|
|
INSERT INTO isam_t2 VALUES (40),(50),(60);
|
|
ALTER TABLE isam_p DROP PARTITION p0;
|
|
ALTER TABLE isam_p DROP PARTITION p1;
|
|
ALTER TABLE isam_p ADD PARTITION (PARTITION p4 VALUES LESS THAN (500));
|
|
ALTER TABLE isam_p ADD PARTITION (PARTITION p5 VALUES LESS THAN (600));
|
|
INSERT INTO isam_p VALUES (401),(501);
|
|
connection default;
|
|
CLONE LOCAL DATA DIRECTORY = 'CLONE_DATADIR';
|
|
connection default;
|
|
# Restart server on cloned data directory
|
|
# restart: with restart_parameters
|
|
SELECT * FROM t1;
|
|
ERROR 42S02: Table 'test.t1' doesn't exist
|
|
SELECT * FROM t2 ORDER BY a;
|
|
a
|
|
40
|
|
50
|
|
60
|
|
SELECT * FROM p ORDER BY a;
|
|
a
|
|
201
|
|
301
|
|
401
|
|
501
|
|
SELECT * FROM isam_t1;
|
|
ERROR 42S02: Table 'test.isam_t1' doesn't exist
|
|
SELECT * FROM isam_t2 ORDER BY a;
|
|
a
|
|
40
|
|
50
|
|
60
|
|
SELECT * FROM isam_p ORDER BY a;
|
|
a
|
|
201
|
|
301
|
|
401
|
|
501
|
|
# restart
|
|
connection default;
|
|
DROP TABLE IF EXISTS p, t2, isam_p, isam_t2;
|
|
UNINSTALL PLUGIN clone;
|