diff options
Diffstat (limited to 'mysql-test/suite/rpl/t/rpl_ps.test')
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_ps.test | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/mysql-test/suite/rpl/t/rpl_ps.test b/mysql-test/suite/rpl/t/rpl_ps.test new file mode 100644 index 00000000..45ab55bf --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_ps.test @@ -0,0 +1,94 @@ +# +# Test of replicating user variables +# +source include/master-slave.inc; + +#sync_slave_with_master; +#reset master; +#connection master; + +--disable_warnings +drop table if exists t1; +--enable_warnings + +create table t1(n char(30)); + +prepare stmt1 from 'insert into t1 values (?)'; +set @var1= "from-master-1"; +execute stmt1 using @var1; +set @var1= "from-master-2-'',"; +execute stmt1 using @var1; +SELECT * FROM t1 ORDER BY n; + +set @var2= 'insert into t1 values (concat("from-var-", ?))'; +prepare stmt2 from @var2; +set @var1='from-master-3'; +execute stmt2 using @var1; + +sync_slave_with_master; +SELECT * FROM t1 ORDER BY n; + +connection master; + +drop table t1; + +sync_slave_with_master; +stop slave; +source include/wait_for_slave_to_stop.inc; +# End of 4.1 tests + +# +# Bug #25843 Changing default database between PREPARE and EXECUTE of statement +# breaks binlog. +# +# There were actually two problems discovered by this bug: +# +# 1. Default (current) database is not fixed at the creation time. +# That leads to wrong output of DATABASE() function. +# +# 2. Database attributes (@@collation_database) are not fixed at the creation +# time. That leads to wrong resultset. +# +# Binlog breakage and Query Cache wrong output happened because of the first +# problem. +# + +--echo +--echo ######################################################################## +--echo # +--echo # BUG#25843: Changing default database between PREPARE and EXECUTE of +--echo # statement breaks binlog. +--echo # +--echo ######################################################################## + +############################################################################### + +--connection slave + +START SLAVE; + +--connection master + +CREATE DATABASE mysqltest1; +CREATE TABLE t1(db_name CHAR(32), db_col_name CHAR(32)); + +PREPARE stmt_d_1 FROM 'INSERT INTO t1 VALUES(DATABASE(), @@collation_database)'; + +EXECUTE stmt_d_1; + +use mysqltest1; + +EXECUTE stmt_d_1; + +--sync_slave_with_master + +SELECT * FROM t1; + +--connection master + +DROP DATABASE mysqltest1; + +use test; +DROP TABLE t1; + +--source include/rpl_end.inc |