source include/master-slave.inc; --disable_warnings drop table if exists t1,v1; drop view if exists t1,v1; sync_slave_with_master; reset master; --enable_warnings # # Check that createion drop of view is replicated, also check replication of # updating of view # connection master; create table t1 (a int); insert into t1 values (1); create view v1 as select a from t1; insert into v1 values (2); select * from v1 order by a; sync_slave_with_master; # view already have to be on slave select * from v1 order by a; connection master; update v1 set a=3 where a=1; select * from v1 order by a; sync_slave_with_master; select * from v1 order by a; connection master; delete from v1 where a=2; select * from v1 order by a; sync_slave_with_master; select * from v1 order by a; connection master; # 'alter view' internally maped to creation, but still check that it works alter view v1 as select a as b from t1; sync_slave_with_master; select * from v1 order by 1; connection master; drop view v1; sync_slave_with_master; #error, because view have to be removed from slave -- error 1146 select * from v1 order by a; connection master; drop table t1; sync_slave_with_master; --replace_column 2 # 5 # show binlog events limit 1,100; # # BUG#20438: CREATE statements for views, stored routines and triggers can be # not replicable. # --echo --echo ---> Test for BUG#20438 # Prepare environment. --echo --echo ---> Preparing environment... --echo ---> connection: master --connection master --disable_warnings DROP TABLE IF EXISTS t1; DROP VIEW IF EXISTS v1; --enable_warnings --echo --echo ---> Synchronizing slave with master... --save_master_pos --connection slave --sync_with_master --echo --echo ---> connection: master --connection master # Test. --echo --echo ---> Creating objects... CREATE TABLE t1(c INT); /*!50003 CREATE VIEW v1 AS SELECT * FROM t1 */; --echo --echo ---> Inserting value... INSERT INTO t1 VALUES(1); --echo --echo ---> Checking on master... SELECT * FROM t1; --echo --echo ---> Synchronizing slave with master... --save_master_pos --connection slave --sync_with_master --echo ---> connection: master --echo --echo ---> Checking on slave... SELECT * FROM t1; # Cleanup. --echo --echo ---> connection: master --connection master --echo --echo ---> Cleaning up... DROP VIEW v1; DROP TABLE t1; --save_master_pos --connection slave --sync_with_master --connection master # # BUG#19419: "VIEW: View that the column name is different # by master and slave is made". # connection master; create table t1(a int, b int); insert into t1 values (1, 1), (1, 2), (1, 3); create view v1(a, b) as select a, sum(b) from t1 group by a; sync_slave_with_master; explain v1; show create table v1; select * from v1; connection master; drop table t1; drop view v1; sync_slave_with_master; # # BUG#28244 CREATE VIEW breaks replication when view exists # connection master; CREATE TABLE t1(a INT); CREATE VIEW v1 AS SELECT * FROM t1; --error ER_TABLE_EXISTS_ERROR CREATE VIEW v1 AS SELECT * FROM t1; DROP VIEW v1; DROP TABLE t1; sync_slave_with_master; --echo End of 5.0 tests