From 46e8ad78222425e416e8eaf56da8e23f30dd9714 Mon Sep 17 00:00:00 2001 From: "jmiller/ndbdev@mysql.com/ndb08.mysql.com" <> Date: Fri, 15 Dec 2006 16:34:29 +0100 Subject: [PATCH] New cluster replication test cases for replication options --- mysql-test/r/rpl_ndb_do_db.result | 60 +++++++++++++++++++++++ mysql-test/r/rpl_ndb_do_table.result | 25 ++++++++++ mysql-test/r/rpl_ndb_rep_ignore.result | 56 +++++++++++++++++++++ mysql-test/t/rpl_ndb_do_db-slave.opt | 1 + mysql-test/t/rpl_ndb_do_db.test | 55 +++++++++++++++++++++ mysql-test/t/rpl_ndb_do_table-slave.opt | 1 + mysql-test/t/rpl_ndb_do_table.test | 31 ++++++++++++ mysql-test/t/rpl_ndb_rep_ignore-slave.opt | 1 + mysql-test/t/rpl_ndb_rep_ignore.test | 56 +++++++++++++++++++++ 9 files changed, 286 insertions(+) create mode 100644 mysql-test/r/rpl_ndb_do_db.result create mode 100644 mysql-test/r/rpl_ndb_do_table.result create mode 100644 mysql-test/r/rpl_ndb_rep_ignore.result create mode 100644 mysql-test/t/rpl_ndb_do_db-slave.opt create mode 100644 mysql-test/t/rpl_ndb_do_db.test create mode 100644 mysql-test/t/rpl_ndb_do_table-slave.opt create mode 100644 mysql-test/t/rpl_ndb_do_table.test create mode 100644 mysql-test/t/rpl_ndb_rep_ignore-slave.opt create mode 100644 mysql-test/t/rpl_ndb_rep_ignore.test diff --git a/mysql-test/r/rpl_ndb_do_db.result b/mysql-test/r/rpl_ndb_do_db.result new file mode 100644 index 00000000000..32f25d5f5a4 --- /dev/null +++ b/mysql-test/r/rpl_ndb_do_db.result @@ -0,0 +1,60 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +DROP DATABASE IF EXISTS replica; +Warnings: +Note 1008 Can't drop database 'replica'; database doesn't exist +CREATE DATABASE replica; +CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +USE replica; +CREATE TABLE replica.t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE replica.t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +USE test; +INSERT INTO t1 VALUES(1, repeat('abc',10)); +INSERT INTO t2 VALUES(1, repeat('abc',10)); +SHOW TABLES; +Tables_in_test +t1 +t2 +SELECT COUNT(*) FROM t1; +COUNT(*) +1 +SELECT COUNT(*) FROM t2; +COUNT(*) +1 +USE replica; +INSERT INTO replica.t1 VALUES(2, repeat('def',200)); +INSERT INTO replica.t2 VALUES(2, repeat('def',200)); +SHOW TABLES; +Tables_in_replica +t1 +t2 +SELECT COUNT(*) FROM t1; +COUNT(*) +1 +SELECT COUNT(*) FROM t2; +COUNT(*) +1 +SHOW TABLES; +Tables_in_test +USE replica; +SHOW TABLES; +Tables_in_replica +t1 +t2 +SELECT COUNT(*) FROM t1; +COUNT(*) +1 +SELECT COUNT(*) FROM t2; +COUNT(*) +1 +USE test; +SHOW TABLES; +Tables_in_test +USE test; +DROP TABLE t1, t2; +DROP DATABASE IF EXISTS replica; diff --git a/mysql-test/r/rpl_ndb_do_table.result b/mysql-test/r/rpl_ndb_do_table.result new file mode 100644 index 00000000000..761c7837fde --- /dev/null +++ b/mysql-test/r/rpl_ndb_do_table.result @@ -0,0 +1,25 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +DROP TABLE IF EXISTS t1, t2; +Warnings: +Note 1051 Unknown table 't1' +Note 1051 Unknown table 't2' +CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +INSERT INTO t1 VALUES(1, repeat('abc',10)); +INSERT INTO t1 VALUES(2, repeat('def',200)); +INSERT INTO t1 VALUES(3, repeat('ghi',3000)); +INSERT INTO t2 VALUES(1, repeat('abc',10)); +INSERT INTO t2 VALUES(2, repeat('def',200)); +INSERT INTO t2 VALUES(3, repeat('ghi',3000)); +SHOW TABLES; +Tables_in_test +t1 +SELECT COUNT(*) FROM t1; +COUNT(*) +3 +DROP TABLE IF EXISTS t1, t2; diff --git a/mysql-test/r/rpl_ndb_rep_ignore.result b/mysql-test/r/rpl_ndb_rep_ignore.result new file mode 100644 index 00000000000..45d9e5db857 --- /dev/null +++ b/mysql-test/r/rpl_ndb_rep_ignore.result @@ -0,0 +1,56 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +DROP DATABASE IF EXISTS replica; +Warnings: +Note 1008 Can't drop database 'replica'; database doesn't exist +CREATE DATABASE replica; +CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +USE replica; +CREATE TABLE replica.t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE replica.t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +USE test; +INSERT INTO t1 VALUES(1, repeat('abc',10)); +INSERT INTO t2 VALUES(1, repeat('abc',10)); +SHOW TABLES; +Tables_in_test +t1 +t2 +SELECT COUNT(*) FROM t1; +COUNT(*) +1 +SELECT COUNT(*) FROM t2; +COUNT(*) +1 +USE replica; +INSERT INTO replica.t1 VALUES(2, repeat('def',200)); +INSERT INTO replica.t2 VALUES(2, repeat('def',200)); +SHOW TABLES; +Tables_in_replica +t1 +t2 +SELECT COUNT(*) FROM t1; +COUNT(*) +1 +SELECT COUNT(*) FROM t2; +COUNT(*) +1 +SHOW TABLES; +Tables_in_test +USE replica; +SHOW TABLES; +Tables_in_replica +t2 +SELECT COUNT(*) FROM t2; +COUNT(*) +1 +USE test; +SHOW TABLES; +Tables_in_test +USE test; +DROP TABLE t1, t2; +DROP DATABASE IF EXISTS replica; diff --git a/mysql-test/t/rpl_ndb_do_db-slave.opt b/mysql-test/t/rpl_ndb_do_db-slave.opt new file mode 100644 index 00000000000..fb5e378b65f --- /dev/null +++ b/mysql-test/t/rpl_ndb_do_db-slave.opt @@ -0,0 +1 @@ +--replicate-do-db=replica diff --git a/mysql-test/t/rpl_ndb_do_db.test b/mysql-test/t/rpl_ndb_do_db.test new file mode 100644 index 00000000000..52c638261bf --- /dev/null +++ b/mysql-test/t/rpl_ndb_do_db.test @@ -0,0 +1,55 @@ +########################################################### +# Author: Jeb +# Date: 14-12-2006 +# Purpose: To test --replicate-do-database=db_name +# using cluster. Only replica should replicate. +########################################################## + +--source include/have_ndb.inc +--source include/have_binlog_format_row.inc +--source include/master-slave.inc + +DROP DATABASE IF EXISTS replica; + +# Create database and tables for the test. +CREATE DATABASE replica; +CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +USE replica; +CREATE TABLE replica.t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE replica.t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; + +# Insert data into db that should not be picked up by slave +USE test; +INSERT INTO t1 VALUES(1, repeat('abc',10)); +INSERT INTO t2 VALUES(1, repeat('abc',10)); +SHOW TABLES; +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM t2; + +# Insert data into db that should be replicated +USE replica; +INSERT INTO replica.t1 VALUES(2, repeat('def',200)); +INSERT INTO replica.t2 VALUES(2, repeat('def',200)); +SHOW TABLES; +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM t2; + +# Check results on slave +--sync_slave_with_master +SHOW TABLES; +USE replica; +SHOW TABLES; +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM t2; +USE test; +SHOW TABLES; + +# Cleanup from testing +connection master; +USE test; +DROP TABLE t1, t2; +DROP DATABASE IF EXISTS replica; +--sync_slave_with_master + +# End 5.1 test case diff --git a/mysql-test/t/rpl_ndb_do_table-slave.opt b/mysql-test/t/rpl_ndb_do_table-slave.opt new file mode 100644 index 00000000000..da345474216 --- /dev/null +++ b/mysql-test/t/rpl_ndb_do_table-slave.opt @@ -0,0 +1 @@ +--replicate-do-table=test.t1 diff --git a/mysql-test/t/rpl_ndb_do_table.test b/mysql-test/t/rpl_ndb_do_table.test new file mode 100644 index 00000000000..8cc34a6ba5c --- /dev/null +++ b/mysql-test/t/rpl_ndb_do_table.test @@ -0,0 +1,31 @@ +########################################################### +# Author: Jeb +# Date: 14-12-2006 +# Purpose: To test --replicate-do-table=db_name.tbl_name +# using cluster. Only t1 should replicate. +########################################################## + +--source include/have_ndb.inc +--source include/have_binlog_format_row.inc +--source include/master-slave.inc + +DROP TABLE IF EXISTS t1, t2; + + +CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; + +INSERT INTO t1 VALUES(1, repeat('abc',10)); +INSERT INTO t1 VALUES(2, repeat('def',200)); +INSERT INTO t1 VALUES(3, repeat('ghi',3000)); +INSERT INTO t2 VALUES(1, repeat('abc',10)); +INSERT INTO t2 VALUES(2, repeat('def',200)); +INSERT INTO t2 VALUES(3, repeat('ghi',3000)); + +--sync_slave_with_master +SHOW TABLES; +SELECT COUNT(*) FROM t1; + +connection master; +DROP TABLE IF EXISTS t1, t2; +--sync_slave_with_master diff --git a/mysql-test/t/rpl_ndb_rep_ignore-slave.opt b/mysql-test/t/rpl_ndb_rep_ignore-slave.opt new file mode 100644 index 00000000000..6262cf451a6 --- /dev/null +++ b/mysql-test/t/rpl_ndb_rep_ignore-slave.opt @@ -0,0 +1 @@ +--replicate-ignore-db=test --replicate-ignore-table=replica.t1 diff --git a/mysql-test/t/rpl_ndb_rep_ignore.test b/mysql-test/t/rpl_ndb_rep_ignore.test new file mode 100644 index 00000000000..14a583eac8e --- /dev/null +++ b/mysql-test/t/rpl_ndb_rep_ignore.test @@ -0,0 +1,56 @@ +########################################################### +# Author: Jeb +# Date: 15-12-2006 +# Purpose: To test --replicate-ignore-table=db_name.tbl_name +# and --replicate-ignore-db=db_name +# using cluster. Only replica should replicate. +########################################################## + +--source include/have_ndb.inc +--source include/have_binlog_format_row.inc +--source include/master-slave.inc + +DROP DATABASE IF EXISTS replica; + +# Create database and tables for the test. +CREATE DATABASE replica; +CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +USE replica; +CREATE TABLE replica.t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; +CREATE TABLE replica.t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB; + +# Insert data into db that should not be picked up by slave +USE test; +INSERT INTO t1 VALUES(1, repeat('abc',10)); +INSERT INTO t2 VALUES(1, repeat('abc',10)); +SHOW TABLES; +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM t2; + +# Insert data into db that should be replicated +USE replica; +INSERT INTO replica.t1 VALUES(2, repeat('def',200)); +INSERT INTO replica.t2 VALUES(2, repeat('def',200)); +SHOW TABLES; +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM t2; + +# Check results on slave +--sync_slave_with_master +SHOW TABLES; +USE replica; +SHOW TABLES; +#SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM t2; +USE test; +SHOW TABLES; + +# Cleanup from testing +connection master; +USE test; +DROP TABLE t1, t2; +DROP DATABASE IF EXISTS replica; +--sync_slave_with_master + +# End 5.1 test case