summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/rpl/t/rpl_ps.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/rpl/t/rpl_ps.test')
-rw-r--r--mysql-test/suite/rpl/t/rpl_ps.test94
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