Commit 69d8c362 authored by jmiller@mysql.com's avatar jmiller@mysql.com

Updated new tests from Lars review

parent a8d76e59
##############################################################
# Author: JBM
# Date: 2006-02-23
# Purpose: See if replication between
# NDB -> MyISAM and InnoDB works.
# and if
# MyISAM and InnoDB -> NDB works.
##############################################################
--disable_query_log
select "--- Doing pre cleanup --" as "";
--enable_query_log
#######################################
# Author: JBM #
# Date: 2006-02-23 #
# Purpose: See if replication between #
# NDB -> MyISAM and InnoDB works. #
# and if #
# MyISAM and InnoDB -> NDB works. #
#######################################
# By JBM #
# Date 2006-02-28 #
# Change: Implemented review comments #
#######################################
--echo --- Doing pre test cleanup ---
connection master;
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_query_log
--disable_warnings
select "--- Start test 1 Basic testing --" as "";
select "--- Create Table Section --" as "";
--enable_query_log
--echo --- Start test 1 Basic testing ---
--echo --- Create Table Section ---
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, f FLOAT DEFAULT 0, total BIGINT UNSIGNED, y YEAR, t DATE,PRIMARY KEY(id));
#################################################
# Requirment: Create basic table, replicate #
# basice operations such at insert, update #
# delete between 2 different storage engines #
# Alter table and ensure table is handled #
# Correctly on the slave #
#################################################
--disable_query_log
select "--- Show table on master --" as "";
--enable_query_log
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
y YEAR, t DATE,PRIMARY KEY(id));
--echo --- Show table on master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Show table on slave --" as "";
--enable_query_log
--echo --- Show table on slave ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
# Okay lets see how it holds up to table changes
--disable_query_log
select "--- Check that simple Alter statements are replicated correctly --" as "";
--enable_query_log
--echo --- Check that simple Alter statements are replicated correctly --
ALTER TABLE t1 MODIFY vc TEXT;
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
--disable_query_log
select "--- Show the new improved table on the master --" as "";
--enable_query_log
--echo --- Show the new improved table on the master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Make sure that our tables on slave are still same engine --" as "";
select "--- and that the alter statements replicated correctly --" as "";
--enable_query_log
--echo --- Make sure that our tables on slave are still same engine ---
--echo --- and that the alter statements replicated correctly ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
--disable_warnings
select "--- End test 1 Basic testing --" as "";
select "--- Do Cleanup --" as "";
--enable_query_log
--echo --- End test 1 Basic testing ---
--echo --- Do Cleanup --
DROP TABLE IF EXISTS t1;
#################################################################
--disable_warnings
select "--- Start test 2 partition RANGE testing --" as "";
select "--- Do setup --" as "";
--enable_query_log
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, f FLOAT DEFAULT 0, total BIGINT UNSIGNED, y YEAR, t DATE)PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901), PARTITION p1 VALUES LESS THAN (1946), PARTITION p2 VALUES LESS THAN (1966), PARTITION p3 VALUES LESS THAN (1986), PARTITION p4 VALUES LESS THAN (2005), PARTITION p5 VALUES LESS THAN MAXVALUE);
--disable_query_log
select "--- Show table on master --" as "";
--enable_query_log
--echo --- Start test 2 partition RANGE testing --
--echo --- Do setup --
#################################################
# Requirment: Create table that is partitioned #
# by range on year i.e. year(t) and replicate #
# basice operations such at insert, update #
# delete between 2 different storage engines #
# Alter table and ensure table is handled #
# Correctly on the slave #
#################################################
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
y YEAR, t DATE)
PARTITION BY RANGE (YEAR(t))
(PARTITION p0 VALUES LESS THAN (1901),
PARTITION p1 VALUES LESS THAN (1946),
PARTITION p2 VALUES LESS THAN (1966),
PARTITION p3 VALUES LESS THAN (1986),
PARTITION p4 VALUES LESS THAN (2005),
PARTITION p5 VALUES LESS THAN MAXVALUE);
--echo --- Show table on master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Show table on slave --" as "";
--enable_query_log
--echo --- Show table on slave --
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
--disable_query_log
select "--- Check that simple Alter statements are replicated correctly --" as "";
--enable_query_log
--echo --- Check that simple Alter statements are replicated correctly ---
ALTER TABLE t1 MODIFY vc TEXT;
--disable_query_log
select "--- Show the new improved table on the master --" as "";
--enable_query_log
--echo --- Show the new improved table on the master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Make sure that our tables on slave are still same engine --" as "";
select "--- and that the alter statements replicated correctly --" as "";
--enable_query_log
--echo --- Make sure that our tables on slave are still same engine ---
--echo --- and that the alter statements replicated correctly ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--enable_query_log
--source include/rpl_multi_engine3.inc
--disable_warnings
select "--- End test 2 partition RANGE testing --" as "";
select "--- Do Cleanup --" as "";
--enable_query_log
--echo --- End test 2 partition RANGE testing ---
--echo --- Do Cleanup ---
DROP TABLE IF EXISTS t1;
########################################################
--disable_warnings
select "--- Start test 3 partition LIST testing --" as "";
select "--- Do setup --" as "";
--enable_query_log
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, f FLOAT DEFAULT 0, total BIGINT UNSIGNED, y YEAR, t DATE)PARTITION BY LIST(id) (PARTITION p0 VALUES IN (2, 4), PARTITION p1 VALUES IN (42, 142));
--disable_warnings
select "--- Test 3 Alter to add partition --" as "";
--enable_query_log
--echo --- Start test 3 partition LIST testing ---
--echo --- Do setup ---
#################################################
# Requirment: Create table that is partitioned #
# by list on id i.e. (2,4). Pretend that we #
# missed one and alter to add. Then replicate #
# basice operations such at insert, update #
# delete between 2 different storage engines #
# Alter table and ensure table is handled #
# Correctly on the slave #
#################################################
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
y YEAR, t DATE)
PARTITION BY LIST(id)
(PARTITION p0 VALUES IN (2, 4),
PARTITION p1 VALUES IN (42, 142));
--echo --- Test 3 Alter to add partition ---
ALTER TABLE t1 ADD PARTITION (PARTITION p2 VALUES IN (412));
--disable_query_log
select "--- Show table on master --" as "";
--enable_query_log
--echo --- Show table on master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Show table on slave --" as "";
--enable_query_log
--echo --- Show table on slave ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
--disable_query_log
select "--- Check that simple Alter statements are replicated correctly --" as "";
--enable_query_log
--echo --- Check that simple Alter statements are replicated correctly ---
ALTER TABLE t1 MODIFY vc TEXT;
--disable_query_log
select "--- Show the new improved table on the master --" as "";
--enable_query_log
--echo --- Show the new improved table on the master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Make sure that our tables on slave are still same engine --" as "";
select "--- and that the alter statements replicated correctly --" as "";
--enable_query_log
--echo --- Make sure that our tables on slave are still same engine ---
--echo --- and that the alter statements replicated correctly ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
--disable_warnings
select "--- End test 3 partition LIST testing --" as "";
select "--- Do Cleanup --" as "";
--enable_query_log
--echo --- End test 3 partition LIST testing ---
--echo --- Do Cleanup --
DROP TABLE IF EXISTS t1;
########################################################
--disable_warnings
select "--- Start test 4 partition HASH testing --" as "";
select "--- Do setup --" as "";
--enable_query_log
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, f FLOAT DEFAULT 0, total BIGINT UNSIGNED, y YEAR, t DATE)PARTITION BY HASH( YEAR(t) ) PARTITIONS 4;
--echo --- Start test 4 partition HASH testing ---
--echo --- Do setup ---
#################################################
# Requirment: Create table that is partitioned #
# by hash on year i.e. YEAR(t). Then replicate #
# basice operations such at insert, update #
# delete between 2 different storage engines #
# Alter table and ensure table is handled #
# Correctly on the slave #
#################################################
--disable_query_log
select "--- show that tables have been created correctly --" as "";
--enable_query_log
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
y YEAR, t DATE)
PARTITION BY HASH( YEAR(t) )
PARTITIONS 4;
--echo --- show that tables have been created correctly ---
SHOW CREATE TABLE t1;
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
--disable_query_log
select "--- Check that simple Alter statements are replicated correctly --" as "";
--enable_query_log
--echo --- Check that simple Alter statements are replicated correctly ---
ALTER TABLE t1 MODIFY vc TEXT;
--disable_query_log
select "--- Show the new improved table on the master --" as "";
--enable_query_log
--echo --- Show the new improved table on the master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Make sure that our tables on slave are still same engine --" as "";
select "--- and that the alter statements replicated correctly --" as "";
--enable_query_log
--echo --- Make sure that our tables on slave are still same engine ---
--echo --- and that the alter statements replicated correctly ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
--disable_warnings
select "--- End test 4 partition HASH testing --" as "";
select "--- Do Cleanup --" as "";
--enable_query_log
--echo --- End test 4 partition HASH testing ---
--echo --- Do Cleanup --
DROP TABLE IF EXISTS t1;
########################################################
--disable_warnings
select "--- Start test 5 partition by key testing --" as "";
select "--- Create Table Section --" as "";
--enable_query_log
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, f FLOAT DEFAULT 0, total BIGINT UNSIGNED, y YEAR, t DATE,PRIMARY KEY(id))PARTITION BY KEY() PARTITIONS 4;
--echo --- Start test 5 partition by key testing ---
--echo --- Create Table Section ---
--disable_query_log
select "--- Show that tables on master are ndbcluster tables --" as "";
--enable_query_log
#################################################
# Requirment: Create table that is partitioned #
# by key on id with 4 parts. Then replicate #
# basice operations such at insert, update #
# delete between 2 different storage engines #
# Alter table and ensure table is handled #
# Correctly on the slave #
#################################################
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
y YEAR, t DATE,PRIMARY KEY(id))
PARTITION BY KEY()
PARTITIONS 4;
--echo --- Show that tables on master are ndbcluster tables ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Show that tables on slave --" as "";
--enable_query_log
--echo --- Show that tables on slave ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
# Okay lets see how it holds up to table changes
--disable_query_log
select "--- Check that simple Alter statements are replicated correctly --" as "";
--enable_query_log
--echo --- Check that simple Alter statements are replicated correctly ---
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
--disable_query_log
select "--- Show the new improved table on the master --" as "";
--enable_query_log
--echo --- Show the new improved table on the master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Make sure that our tables on slave are still myisam, innodb, memory --" as "";
select "--- and that the alter statements replicated correctly --" as "";
--enable_query_log
--echo --- Make sure that our tables on slave are still right type ---
--echo --- and that the alter statements replicated correctly ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
--disable_query_log
select "--- Check that simple Alter statements are replicated correctly --" as "";
--enable_query_log
--echo --- Check that simple Alter statements are replicated correctly ---
ALTER TABLE t1 MODIFY vc TEXT;
--disable_query_log
select "--- Show the new improved table on the master --" as "";
--enable_query_log
--echo --- Show the new improved table on the master ---
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Make sure that our tables on slave are still same engine --" as "";
select "--- and that the alter statements replicated correctly --" as "";
--enable_query_log
--echo --- Make sure that our tables on slave are still same engine ---
--echo --- and that the alter statements replicated correctly ---
sync_slave_with_master;
SHOW CREATE TABLE t1;
--disable_query_log
select "--- Perform basic operation on master and ensure replicated correctly --" as "";
--enable_query_log
--echo --- Perform basic operation on master ---
--echo --- and ensure replicated correctly ---
--source include/rpl_multi_engine3.inc
--disable_warnings
select "--- End test 1 Basic testing --" as "";
select "--- Do Cleanup --" as "";
--enable_query_log
--echo --- End test 5 key partition testing ---
--echo --- Do Cleanup ---
DROP TABLE IF EXISTS t1;
......
......@@ -4,51 +4,59 @@
# Purpose: To reuse through out test and make maint easier
#############################################################
connection master;
--disable_query_log
select "--- Insert into t1 --" as "";
INSERT INTO t1 VALUES(42,1,'Testing MySQL databases is a cool ', 'Must make it bug free for the customer',654321.4321,15.21,0,1965,"1905-11-14");
INSERT INTO t1 VALUES(2,1,'Testing MySQL databases is a cool ', 'Must make it bug free for the customer',654321.4321,15.21,0,1965,"1965-11-14");
INSERT INTO t1 VALUES(4,1,'Testing MySQL databases is a cool ', 'Must make it bug free for the customer',654321.4321,15.21,0,1965,"1985-11-14");
INSERT INTO t1 VALUES(142,1,'Testing MySQL databases is a cool ', 'Must make it bug free for the customer',654321.4321,15.21,0,1965,"1995-11-14");
INSERT INTO t1 VALUES(412,1,'Testing MySQL databases is a cool ', 'Must make it bug free for the customer',654321.4321,15.21,0,1965,"2005-11-14");
select "--- Select from t1 on master --" as "";
--enable_query_log
--echo "--- Insert into t1 --" as "";
--disable_query_log
INSERT INTO t1 VALUES(42,1,'Testing MySQL databases is a cool ',
'Must make it bug free for the customer',
654321.4321,15.21,0,1965,"1905-11-14");
INSERT INTO t1 VALUES(2,1,'Testing MySQL databases is a cool ',
'Must make it bug free for the customer',
654321.4321,15.21,0,1965,"1965-11-14");
INSERT INTO t1 VALUES(4,1,'Testing MySQL databases is a cool ',
'Must make it bug free for the customer',
654321.4321,15.21,0,1965,"1985-11-14");
INSERT INTO t1 VALUES(142,1,'Testing MySQL databases is a cool ',
'Must make it bug free for the customer',
654321.4321,15.21,0,1965,"1995-11-14");
INSERT INTO t1 VALUES(412,1,'Testing MySQL databases is a cool ',
'Must make it bug free for the customer',
654321.4321,15.21,0,1965,"2005-11-14");
--enable_query_log
--echo --- Select from t1 on master ---
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
sync_slave_with_master;
--disable_query_log
select "--- Select from t1 on slave --" as "";
--enable_query_log
--echo --- Select from t1 on slave ---
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
connection master;
--disable_query_log
select "--- Update t1 on master --" as "";
--enable_query_log
--echo --- Update t1 on master --
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
--disable_query_log
select "--- Check the update on master --" as "";
--enable_query_log
--echo --- Check the update on master ---
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
# Must give injector thread a little time to get update
# into the binlog other wise we will miss the update.
sleep 3;
sync_slave_with_master;
--disable_query_log
select "--- Check Update on slave --" as "";
--enable_query_log
--echo --- Check Update on slave ---
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
connection master;
--disable_query_log
select "--- Remove a record from t1 on master --" as "";
--enable_query_log
--echo --- Remove a record from t1 on master ---
DELETE FROM t1 WHERE id = 42;
--disable_query_log
select "--- Show current count on master for t1 --" as "";
--enable_query_log
--echo --- Show current count on master for t1 ---
SELECT COUNT(*) FROM t1;
sync_slave_with_master;
--disable_query_log
select "--- Show current count on slave for t1 --" as "";
--enable_query_log
--echo --- Show current count on slave for t1 ---
SELECT COUNT(*) FROM t1;
connection master;
DELETE FROM t1;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment