# See if replication between MyISAM, MEMORY and InnoDB works.

#This test case is not written for NDB, result files do not 
#match when NDB is the default engine
-- source include/not_ndb_default.inc

-- source include/master-slave.inc

connection slave;
-- source include/have_innodb.inc

connection master;
-- source include/have_innodb.inc
--disable_warnings
create database if not exists mysqltest1;
use mysqltest1;
drop table if exists t1;

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 TIMESTAMP,PRIMARY KEY(id));

sync_slave_with_master;
use mysqltest1;

# MyISAM to MyISAM then InnoDB then MEMORY

connection master;
alter table t1 engine=myisam;
show create table t1;
sync_slave_with_master;

connection slave;
alter table t1 engine=myisam;
show create table t1;

--source include/rpl_multi_engine.inc

connection slave;
alter table t1 engine=innodb;
show create table t1;

--source include/rpl_multi_engine.inc

connection slave;
alter table t1 engine=memory;
show create table t1;

--source include/rpl_multi_engine.inc

# MEMORY to ...

connection master;
alter table t1 engine=memory;
show create table t1;
sync_slave_with_master;

connection slave;
alter table t1 engine=myisam;
show create table t1;

--source include/rpl_multi_engine.inc

connection slave;
alter table t1 engine=innodb;
show create table t1;

--source include/rpl_multi_engine.inc

connection slave;
alter table t1 engine=memory;
show create table t1;

--source include/rpl_multi_engine.inc

# InnoDB to ...

connection master;
alter table t1 engine=innodb;
show create table t1;
sync_slave_with_master;

connection slave;
alter table t1 engine=myisam;
show create table t1;

--source include/rpl_multi_engine.inc

connection slave;
alter table t1 engine=innodb;
show create table t1;

--source include/rpl_multi_engine.inc

connection slave;
alter table t1 engine=memory;
show create table t1;

--source include/rpl_multi_engine.inc

# cleanup
connection master;
DROP TABLE t1;
# Need to drop mysqltest1 as well so other test will pass.
DROP DATABASE mysqltest1;
sync_slave_with_master;

# End of 5.1 test case
