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;

---Setup Section  --
set timestamp=1000000000;
DROP TABLE IF EXISTS t1,t2,t3;
CREATE TABLE t1(word VARCHAR(20));
CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY);
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT);

---Test1 check table load  --
SELECT COUNT(*) from t1;
COUNT(*)
351
SELECT COUNT(*) from t2;
COUNT(*)
500
SELECT COUNT(*) from t3;
COUNT(*)
500
SELECT * FROM t1 ORDER BY word LIMIT 5;
word
Aarhus
Aarhus
Aarhus
Aarhus
Aarhus
SELECT * FROM t2 ORDER BY id LIMIT 5;
id
1
2
3
4
5
SELECT c1, c3, c4, c5  FROM t3 ORDER BY c1 LIMIT 5;
c1	c3	c4	c5
1	2006-02-22 00:00:00	Tested in Texas	2.2
2	2006-02-22 00:00:00	Tested in Texas	4.4
3	2006-02-22 00:00:00	Tested in Texas	6.6
4	2006-02-22 00:00:00	Tested in Texas	8.8
5	2006-02-22 00:00:00	Tested in Texas	11
SELECT COUNT(*) from t1;
COUNT(*)
351
SELECT COUNT(*) from t2;
COUNT(*)
500
SELECT COUNT(*) from t3;
COUNT(*)
500
SELECT * FROM t1 ORDER BY word LIMIT 5;
word
Aarhus
Aarhus
Aarhus
Aarhus
Aarhus
SELECT * FROM t2 ORDER BY id LIMIT 5;
id
1
2
3
4
5
SELECT c1, c3, c4, c5  FROM t3 ORDER BY c1 LIMIT 5;
c1	c3	c4	c5
1	2006-02-22 00:00:00	Tested in Texas	2.2
2	2006-02-22 00:00:00	Tested in Texas	4.4
3	2006-02-22 00:00:00	Tested in Texas	6.6
4	2006-02-22 00:00:00	Tested in Texas	8.8
5	2006-02-22 00:00:00	Tested in Texas	11
insert into t1 values ("Alas");
flush logs;

--- Test 1 Dump binlog to file --

--- Test 1 delete tables, clean master and slave  --
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
stop slave;
reset master;
reset slave;
start slave;

--- Test 1 Load from Dump binlog file --

--- Test 1 Check Load Results --
SELECT COUNT(*) from t1;
COUNT(*)
352
SELECT COUNT(*) from t2;
COUNT(*)
500
SELECT COUNT(*) from t3;
COUNT(*)
500
SELECT * FROM t1 ORDER BY word LIMIT 5;
word
Aarhus
Aarhus
Aarhus
Aarhus
Aarhus
SELECT * FROM t2 ORDER BY id LIMIT 5;
id
1
2
3
4
5
SELECT c1, c3, c4, c5  FROM t3 ORDER BY c1 LIMIT 5;
c1	c3	c4	c5
1	2006-02-22 00:00:00	Tested in Texas	2.2
2	2006-02-22 00:00:00	Tested in Texas	4.4
3	2006-02-22 00:00:00	Tested in Texas	6.6
4	2006-02-22 00:00:00	Tested in Texas	8.8
5	2006-02-22 00:00:00	Tested in Texas	11
SELECT COUNT(*) from t1;
COUNT(*)
352
SELECT COUNT(*) from t2;
COUNT(*)
500
SELECT COUNT(*) from t3;
COUNT(*)
500
SELECT * FROM t1 ORDER BY word LIMIT 5;
word
Aarhus
Aarhus
Aarhus
Aarhus
Aarhus
SELECT * FROM t2 ORDER BY id LIMIT 5;
id
1
2
3
4
5
SELECT c1, c3, c4, c5  FROM t3 ORDER BY c1 LIMIT 5;
c1	c3	c4	c5
1	2006-02-22 00:00:00	Tested in Texas	2.2
2	2006-02-22 00:00:00	Tested in Texas	4.4
3	2006-02-22 00:00:00	Tested in Texas	6.6
4	2006-02-22 00:00:00	Tested in Texas	8.8
5	2006-02-22 00:00:00	Tested in Texas	11

--- Test 2 position test --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
use test/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

--- Test 3 First Remote test --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ROLLBACK/*!*/;
use test/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
DROP TABLE IF EXISTS t1,t2,t3/*!*/;
SET TIMESTAMP=1000000000/*!*/;
CREATE TABLE t1(word VARCHAR(20))/*!*/;
SET TIMESTAMP=1000000000/*!*/;
CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY)/*!*/;
SET TIMESTAMP=1000000000/*!*/;
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

--- Test 4 Second Remote test --
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
stop slave;
reset master;
reset slave;
start slave;
SELECT COUNT(*) from t1;
COUNT(*)
352
SELECT COUNT(*) from t2;
COUNT(*)
500
SELECT COUNT(*) from t3;
COUNT(*)
500
SELECT * FROM t1 ORDER BY word LIMIT 5;
word
Aarhus
Aarhus
Aarhus
Aarhus
Aarhus
SELECT * FROM t2 ORDER BY id LIMIT 5;
id
1
2
3
4
5
SELECT c1, c3, c4, c5  FROM t3 ORDER BY c1 LIMIT 5;
c1	c3	c4	c5
1	2006-02-22 00:00:00	Tested in Texas	2.2
2	2006-02-22 00:00:00	Tested in Texas	4.4
3	2006-02-22 00:00:00	Tested in Texas	6.6
4	2006-02-22 00:00:00	Tested in Texas	8.8
5	2006-02-22 00:00:00	Tested in Texas	11
SELECT COUNT(*) from t1;
COUNT(*)
352
SELECT COUNT(*) from t2;
COUNT(*)
500
SELECT COUNT(*) from t3;
COUNT(*)
500
SELECT * FROM t1 ORDER BY word LIMIT 5;
word
Aarhus
Aarhus
Aarhus
Aarhus
Aarhus
SELECT * FROM t2 ORDER BY id LIMIT 5;
id
1
2
3
4
5
SELECT c1, c3, c4, c5  FROM t3 ORDER BY c1 LIMIT 5;
c1	c3	c4	c5
1	2006-02-22 00:00:00	Tested in Texas	2.2
2	2006-02-22 00:00:00	Tested in Texas	4.4
3	2006-02-22 00:00:00	Tested in Texas	6.6
4	2006-02-22 00:00:00	Tested in Texas	8.8
5	2006-02-22 00:00:00	Tested in Texas	11

--- Test 5 LOAD DATA --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

--- Test 6 reading stdin --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ROLLBACK/*!*/;
use test/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
DROP TABLE IF EXISTS t1,t2,t3/*!*/;
SET TIMESTAMP=1000000000/*!*/;
CREATE TABLE t1(word VARCHAR(20))/*!*/;
SET TIMESTAMP=1000000000/*!*/;
CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY)/*!*/;
SET TIMESTAMP=1000000000/*!*/;
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

--- Test 7 reading stdin w/position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
use test/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

--- Test 8 switch internal charset --
stop slave;
reset master;
reset slave;
start slave;
create table t4 (f text character set utf8);
create table t5 (f text character set cp932);
flush logs;
rename table t4 to t04, t5 to t05;
select HEX(f) from t04;
HEX(f)
E382BD
select HEX(f) from t4;
HEX(f)
E382BD
select HEX(f) from t05;
HEX(f)
835C
select HEX(f) from t5;
HEX(f)
835C
select HEX(f) from t04;
HEX(f)
E382BD
select HEX(f) from t4;
HEX(f)
E382BD
select HEX(f) from t05;
HEX(f)
835C
select HEX(f) from t5;
HEX(f)
835C

--- Test cleanup --
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT NOT NULL KEY, b INT);
INSERT INTO t1 VALUES(1,1);
SELECT * FROM t1;
a	b
1	1
FLUSH LOGS;
DROP TABLE IF EXISTS t1, t2, t3, t04, t05, t4, t5;