mariadb/mysql-test/suite/clone/t/local_basic.test

101 lines
3.2 KiB
Text

# Test clone command
--source include/have_innodb.inc
--let $CLONE_DATADIR = $MYSQL_TMP_DIR/data_new
CREATE TABLE t1(col1 INT PRIMARY KEY, col2 char(64), FULLTEXT KEY fts_index(col2))ENGINE=InnoDB;
INSERT INTO t1 VALUES(10, 'clone row 1');
INSERT INTO t1 VALUES(20, 'clone row 2');
INSERT INTO t1 VALUES(30, 'clone row 3');
SELECT * from t1 ORDER BY col1;
SELECT count(*) FROM mysql.general_log;
SELECT count(*) FROM mysql.slow_log;
# Create MyIsam and CSV tables in common schema
CREATE TABLE t_myisam(col1 INT PRIMARY KEY, col2 char(64)) ENGINE=MyISAM;
INSERT INTO t_myisam VALUES(10, 'myisam not cloned row 1');
SELECT * from t_myisam ORDER BY col1;
CREATE TABLE t_csv(col1 INT NOT NULL, col2 char(64) NOT NULL) ENGINE=CSV;
INSERT INTO t_csv VALUES(10, 'csv not cloned row 1');
SELECT * from t_csv ORDER BY col1;
# Create MyIsam and CSV tables in separate schema
CREATE SCHEMA non_innodb;
CREATE TABLE non_innodb.t_myisam(col1 INT PRIMARY KEY, col2 char(64)) ENGINE=MyISAM;
INSERT INTO non_innodb.t_myisam VALUES(10, 'myisam not cloned row 1');
INSERT INTO non_innodb.t_myisam VALUES(20, 'myisam not cloned row 2');
INSERT INTO non_innodb.t_myisam VALUES(30, 'myisam not cloned row 3');
SELECT * from non_innodb.t_myisam ORDER BY col1;
CREATE TABLE non_innodb.t_csv(col1 INT NOT NULL, col2 char(64) NOT NULL) ENGINE=CSV;
INSERT INTO non_innodb.t_csv VALUES(10, 'csv not cloned row 1');
INSERT INTO non_innodb.t_csv VALUES(20, 'csv not cloned row 2');
INSERT INTO non_innodb.t_csv VALUES(30, 'csv not cloned row 3');
SELECT * from non_innodb.t_csv ORDER BY col1;
# Install Clone Plugin
--replace_result $MARIADB_CLONE_SO CLONE_PLUGIN
--eval INSTALL PLUGIN clone SONAME '$MARIADB_CLONE_SO'
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE '%clone%';
# Clone data
--replace_result $CLONE_DATADIR CLONE_DATADIR
--eval CLONE LOCAL DATA DIRECTORY = '$CLONE_DATADIR'
--connection default
--echo # Restart server on cloned data directory
--let $restart_noprint=1
--let restart_parameters=--datadir=$CLONE_DATADIR
--source include/restart_mysqld.inc
# Validate data
SELECT * from t1 ORDER BY col1;
INSERT INTO t1 VALUES(40, 'clone row 4');
SELECT * from t1 ORDER BY col1;
# Check MyISAM and CSV table data
SELECT * from t_myisam ORDER BY col1;
INSERT INTO t_myisam VALUES(40, 'myisam not cloned row 4');
SELECT * from t_myisam ORDER BY col1;
INSERT INTO t_csv VALUES(40, 'csv not cloned row 4');
SELECT * from t_csv ORDER BY col1;
INSERT INTO non_innodb.t_myisam VALUES(40, 'myisam not cloned row 4');
SELECT * from non_innodb.t_myisam ORDER BY col1;
INSERT INTO non_innodb.t_csv VALUES(40, 'csv not cloned row 4');
SELECT * from non_innodb.t_csv ORDER BY col1;
SHOW TABLES;
# Validate query log tables;
SELECT count(*) FROM mysql.general_log;
SELECT count(*) FROM mysql.slow_log;
SET GLOBAL general_log = ON;
SET GLOBAL slow_query_log = ON;
#Cleanup
--let restart_parameters=
--source include/restart_mysqld.inc
SHOW TABLES;
SELECT * from t1 ORDER BY col1;
SELECT * from t_myisam ORDER BY col1;
DROP TABLE t1;
DROP TABLE t_myisam;
DROP TABLE t_csv;
DROP TABLE non_innodb.t_myisam;
DROP TABLE non_innodb.t_csv;
DROP SCHEMA non_innodb;
--rmdir $CLONE_DATADIR
UNINSTALL PLUGIN clone;