diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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'); :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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'); :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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'); :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SET GLOBAL clone_enable_compression='ON'; +SET GLOBAL clone_autotune_concurrency = OFF; +SET GLOBAL clone_max_concurrency = 8; :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SET GLOBAL clone_enable_compression='ON'; +SET GLOBAL clone_autotune_concurrency = OFF; +SET GLOBAL clone_max_concurrency = 8; +CLONE LOCAL DATA DIRECTORY = 'CLONE_DATADIR'; +select ID, STATE, ERROR_NO from performance_schema.clone_status; +ID STATE ERROR_NO :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SET GLOBAL clone_enable_compression='ON'; +SET GLOBAL clone_autotune_concurrency = OFF; +SET GLOBAL clone_max_concurrency = 8; +CLONE LOCAL DATA DIRECTORY = 'CLONE_DATADIR'; +select ID, STATE, ERROR_NO from performance_schema.clone_status; +ID STATE ERROR_NO +1 Completed 0 +select ID, STAGE, STATE from performance_schema.clone_progress; +ID STAGE STATE :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SET GLOBAL clone_enable_compression='ON'; +SET GLOBAL clone_autotune_concurrency = OFF; +SET GLOBAL clone_max_concurrency = 8; +CLONE LOCAL DATA DIRECTORY = 'CLONE_DATADIR'; +select ID, STATE, ERROR_NO from performance_schema.clone_status; +ID STATE ERROR_NO +1 Completed 0 +select ID, STAGE, STATE from performance_schema.clone_progress; +ID STAGE STATE +1 DROP DATA Completed +1 FILE COPY Completed +1 PAGE COPY Completed :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SET GLOBAL clone_enable_compression='ON'; +SET GLOBAL clone_autotune_concurrency = OFF; +SET GLOBAL clone_max_concurrency = 8; +CLONE LOCAL DATA DIRECTORY = 'CLONE_DATADIR'; +select ID, STATE, ERROR_NO from performance_schema.clone_status; +ID STATE ERROR_NO +1 Completed 0 +select ID, STAGE, STATE from performance_schema.clone_progress; +ID STAGE STATE +1 DROP DATA Completed +1 FILE COPY Completed +1 PAGE COPY Completed +1 REDO COPY Completed +1 FILE SYNC Completed :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SET GLOBAL clone_enable_compression='ON'; +SET GLOBAL clone_autotune_concurrency = OFF; +SET GLOBAL clone_max_concurrency = 8; +CLONE LOCAL DATA DIRECTORY = 'CLONE_DATADIR'; +select ID, STATE, ERROR_NO from performance_schema.clone_status; +ID STATE ERROR_NO +1 Completed 0 +select ID, STAGE, STATE from performance_schema.clone_progress; +ID STAGE STATE +1 DROP DATA Completed +1 FILE COPY Completed +1 PAGE COPY Completed +1 REDO COPY Completed +1 FILE SYNC Completed +1 RESTART Not Started :...skipping... diff --git a/mysql-test/suite/clone/r/local_patch.result b/mysql-test/suite/clone/r/local_patch.result new file mode 100644 index 00000000000..3afcc39fea1 --- /dev/null +++ b/mysql-test/suite/clone/r/local_patch.result @@ -0,0 +1,55 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SET GLOBAL clone_enable_compression='ON'; +SET GLOBAL clone_autotune_concurrency = OFF; +SET GLOBAL clone_max_concurrency = 8; +CLONE LOCAL DATA DIRECTORY = 'CLONE_DATADIR'; +select ID, STATE, ERROR_NO from performance_schema.clone_status; +ID STATE ERROR_NO +1 Completed 0 +select ID, STAGE, STATE from performance_schema.clone_progress; +ID STAGE STATE +1 DROP DATA Completed +1 FILE COPY Completed +1 PAGE COPY Completed +1 REDO COPY Completed +1 FILE SYNC Completed +1 RESTART Not Started +1 RECOVERY Not Started +# restart: --datadir=CLONE_DATADIR +SELECT * from t1 ORDER BY col1; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +INSERT INTO t1 VALUES(40, 'clone row 4'); +SELECT * from t1 ORDER BY col1; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +40 clone row 4 +SET GLOBAL general_log = ON; +SET GLOBAL slow_query_log = ON; +# restart: +SELECT * from t1 ORDER BY col1; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +DROP TABLE t1; +UNINSTALL PLUGIN clone; diff --git a/mysql-test/suite/clone/r/remote_patch.result b/mysql-test/suite/clone/r/remote_patch.result new file mode 100644 index 00000000000..627c22e099e --- /dev/null +++ b/mysql-test/suite/clone/r/remote_patch.result @@ -0,0 +1,60 @@ +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; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +SELECT count(*) FROM mysql.general_log; +count(*) +0 +SELECT count(*) FROM mysql.slow_log; +count(*) +0 +show variables like 'protocol_compression_algorithms'; +Variable_name Value +protocol_compression_algorithms zlib,zstd,uncompressed +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SET GLOBAL clone_compression_algorithm='zstd'; +SET GLOBAL clone_zstd_compression_level=8; +SET GLOBAL clone_autotune_concurrency = OFF; +SET GLOBAL clone_max_concurrency = 8; +SET GLOBAL clone_valid_donor_list = 'HOST:PORT'; +CLONE INSTANCE FROM USER@HOST:PORT IDENTIFIED BY '' DATA DIRECTORY = 'CLONE_DATADIR'; +select ID, STATE, ERROR_NO from performance_schema.clone_status; +ID STATE ERROR_NO +1 Completed 0 +select ID, STAGE, STATE from performance_schema.clone_progress; +ID STAGE STATE +1 DROP DATA Completed +1 FILE COPY Completed +1 PAGE COPY Completed +1 REDO COPY Completed +1 FILE SYNC Completed +1 RESTART Not Started +1 RECOVERY Not Started +# restart: --datadir=CLONE_DATADIR +SELECT * from t1 ORDER BY col1; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +INSERT INTO t1 VALUES(40, 'clone row 4'); +SELECT * from t1 ORDER BY col1; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +40 clone row 4 +SET GLOBAL general_log = ON; +SET GLOBAL slow_query_log = ON; +# restart: +SELECT * from t1 ORDER BY col1; +col1 col2 +10 clone row 1 +20 clone row 2 +30 clone row 3 +DROP TABLE t1; +UNINSTALL PLUGIN clone; diff --git a/mysql-test/suite/clone/r/sys_var.result b/mysql-test/suite/clone/r/sys_var.result new file mode 100644 index 00000000000..40ebcc801e7 --- /dev/null +++ b/mysql-test/suite/clone/r/sys_var.result @@ -0,0 +1,45 @@ +INSTALL PLUGIN clone SONAME 'CLONE_PLUGIN'; +SELECT @@clone_zstd_compression_level; +@@clone_zstd_compression_level +3 +SET GLOBAL clone_zstd_compression_level=5; +SELECT @@clone_zstd_compression_level; +@@clone_zstd_compression_level +5 +SET GLOBAL clone_zstd_compression_level=30; +ERROR 42000: Variable 'clone_zstd_compression_level' can't be set to the value of '30' +SELECT @@clone_zstd_compression_level; +@@clone_zstd_compression_level +5 +SET GLOBAL clone_zstd_compression_level=-1; +ERROR 42000: Variable 'clone_zstd_compression_level' can't be set to the value of '-1' +SELECT @@clone_zstd_compression_level; +@@clone_zstd_compression_level +5 +SELECT @@clone_compression_algorithm; +@@clone_compression_algorithm +uncompressed +SET GLOBAL clone_compression_algorithm='zstd'; +SELECT @@clone_compression_algorithm; +@@clone_compression_algorithm +zstd +SET GLOBAL clone_compression_algorithm='zstd,zlib'; +SELECT @@clone_compression_algorithm; +@@clone_compression_algorithm +zstd,zlib +SET GLOBAL clone_compression_algorithm='unknown'; +ERROR 42000: Variable 'clone_compression_algorithm' can't be set to the value of 'unknown' +SELECT @@clone_compression_algorithm; +@@clone_compression_algorithm +zstd,zlib +SET GLOBAL clone_compression_algorithm='unknown,zstd'; +ERROR 42000: Variable 'clone_compression_algorithm' can't be set to the value of 'unknown,zstd' +SELECT @@clone_compression_algorithm; +@@clone_compression_algorithm +zstd,zlib +SET GLOBAL clone_compression_algorithm='zstd,unknown'; +ERROR 42000: Variable 'clone_compression_algorithm' can't be set to the value of 'zstd,unknown' +SELECT @@clone_compression_algorithm; +@@clone_compression_algorithm +zstd,zlib +UNINSTALL PLUGIN clone; diff --git a/mysql-test/suite/clone/t/local_patch.test b/mysql-test/suite/clone/t/local_patch.test new file mode 100644 index 00000000000..ca282e21b3a --- /dev/null +++ b/mysql-test/suite/clone/t/local_patch.test @@ -0,0 +1,80 @@ +# Test clone command + +--source include/have_example_plugin.inc +--source include/have_log_bin.inc +--source ../include/clone_connection_begin.inc +--let $CLONE_DATADIR = $MYSQL_TMP_DIR/data_new + +--disable_query_log +call mtr.add_suppression("\\[Warning\\] .*MY-\\d+.* Non innodb table: .* is not cloned and is empty."); +call mtr.add_suppression("\\[Warning\\] .*MY-\\d+.* Clone removing all user data for provisioning: .*"); +--enable_query_log + +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; + +# Check Server Compression Algorithm +show variables like 'protocol_compression_algorithms'; + +# Install Clone Plugin +--replace_result $CLONE_PLUGIN CLONE_PLUGIN +--eval INSTALL PLUGIN clone SONAME '$CLONE_PLUGIN' + +# Clone data +--connection clone_conn_1 +SET GLOBAL clone_compression_algorithm='zstd'; +SET GLOBAL clone_zstd_compression_level=8; +--source ../include/clone_command.inc + +if (!$clone_remote_replace) { + --connection default + # Restart server on cloned data directory + --replace_result $CLONE_DATADIR CLONE_DATADIR + --let restart_parameters="restart: --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; + +SET GLOBAL general_log = ON; +SET GLOBAL slow_query_log = ON; + +#Cleanup +if (!$clone_remote_replace) { + --let restart_parameters="restart:" + --source include/restart_mysqld.inc +} +--connection default + +SELECT * from t1 ORDER BY col1; + +DROP TABLE t1; + +if (!$clone_remote_replace) { + --force-rmdir $CLONE_DATADIR +} + +# Clean recipient by cloning the cleaned up donor +if ($clone_remote_replace) { + --connection clone_conn_1 + --let $clone_err = ER_SCHEMA_READ_ONLY + --source ../include/clone_command.inc + --let $clone_err = 0 + + ALTER SCHEMA schema_read_only READ ONLY=0; + --source ../include/clone_command.inc +} +--source ../include/clone_connection_end.inc + +UNINSTALL PLUGIN clone; diff --git a/mysql-test/suite/clone/t/remote_patch.test b/mysql-test/suite/clone/t/remote_patch.test new file mode 100644 index 00000000000..43d3d112262 --- /dev/null +++ b/mysql-test/suite/clone/t/remote_patch.test @@ -0,0 +1,8 @@ +# Test clone remote command + +--let $HOST = 127.0.0.1 +--let $PORT =`select @@port` +--let $USER = root +--let remote_clone = 1 + +--source local_patch.test diff --git a/mysql-test/suite/clone/t/sys_var.test b/mysql-test/suite/clone/t/sys_var.test new file mode 100644 index 00000000000..6e5987fd47b --- /dev/null +++ b/mysql-test/suite/clone/t/sys_var.test @@ -0,0 +1,51 @@ +# Test clone plugin system variables + +--source include/have_example_plugin.inc +--source include/have_log_bin.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc + +--disable_query_log +call mtr.add_suppression("\\[Warning\\] .*MY-\\d+.* Non innodb table: .* is not cloned and is empty."); +call mtr.add_suppression("\\[Warning\\] .*MY-\\d+.* Clone removing all user data for provisioning: .*"); +--enable_query_log + +# Install Clone Plugin +--replace_result $CLONE_PLUGIN CLONE_PLUGIN +--eval INSTALL PLUGIN clone SONAME '$CLONE_PLUGIN' + +SELECT @@clone_zstd_compression_level; + +SET GLOBAL clone_zstd_compression_level=5; +SELECT @@clone_zstd_compression_level; + +--error 1231 +SET GLOBAL clone_zstd_compression_level=30; +SELECT @@clone_zstd_compression_level; + +--error 1231 +SET GLOBAL clone_zstd_compression_level=-1; +SELECT @@clone_zstd_compression_level; + +SELECT @@clone_compression_algorithm; + +SET GLOBAL clone_compression_algorithm='zstd'; +SELECT @@clone_compression_algorithm; + +SET GLOBAL clone_compression_algorithm='zstd,zlib'; +SELECT @@clone_compression_algorithm; + +--error 1231 +SET GLOBAL clone_compression_algorithm='unknown'; +SELECT @@clone_compression_algorithm; + +--error 1231 +SET GLOBAL clone_compression_algorithm='unknown,zstd'; +SELECT @@clone_compression_algorithm; + +--error 1231 +SET GLOBAL clone_compression_algorithm='zstd,unknown'; +SELECT @@clone_compression_algorithm; + +# Clean up +UNINSTALL PLUGIN clone;