diff --git a/mysql-test/r/ctype_cp932_binlog_stm.result b/mysql-test/r/ctype_cp932_binlog_stm.result index b486d2faaa9..4f96fa4aee1 100644 --- a/mysql-test/r/ctype_cp932_binlog_stm.result +++ b/mysql-test/r/ctype_cp932_binlog_stm.result @@ -9,8 +9,7 @@ EXECUTE stmt1 USING @var1; show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # use `test`; CREATE TABLE t1(f1 blob) -master-bin.000001 # User var # # @`var1`=_binary 0x8300 COLLATE binary -master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(@'var1') +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES('ƒ\0') SELECT HEX(f1) FROM t1; HEX(f1) 8300 @@ -30,17 +29,17 @@ HEX(s1) HEX(s2) d 466F6F2773206120426172 ED40ED41ED42 47.93 DROP PROCEDURE bug18293| DROP TABLE t4| -SHOW BINLOG EVENTS FROM 410| +SHOW BINLOG EVENTS FROM 369| Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 410 Query 1 576 use `test`; CREATE TABLE t4 (s1 CHAR(50) CHARACTER SET latin1, +master-bin.000001 369 Query 1 535 use `test`; CREATE TABLE t4 (s1 CHAR(50) CHARACTER SET latin1, s2 CHAR(50) CHARACTER SET cp932, d DECIMAL(10,2)) -master-bin.000001 576 Query 1 824 use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE bug18293 (IN ins1 CHAR(50), +master-bin.000001 535 Query 1 783 use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE bug18293 (IN ins1 CHAR(50), IN ins2 CHAR(50) CHARACTER SET cp932, IN ind DECIMAL(10,2)) BEGIN INSERT INTO t4 VALUES (ins1, ins2, ind); END -master-bin.000001 824 Query 1 1043 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93)) -master-bin.000001 1043 Query 1 1132 use `test`; DROP PROCEDURE bug18293 -master-bin.000001 1132 Query 1 1211 use `test`; DROP TABLE t4 +master-bin.000001 783 Query 1 1002 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93)) +master-bin.000001 1002 Query 1 1091 use `test`; DROP PROCEDURE bug18293 +master-bin.000001 1091 Query 1 1170 use `test`; DROP TABLE t4 diff --git a/mysql-test/r/rpl_switch_stm_row_mixed.result b/mysql-test/r/rpl_switch_stm_row_mixed.result index 6d9f1a32980..7c796bd5449 100644 --- a/mysql-test/r/rpl_switch_stm_row_mixed.result +++ b/mysql-test/r/rpl_switch_stm_row_mixed.result @@ -425,19 +425,15 @@ master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_8_") -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F375F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_7_' master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_9_") -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F375F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_7_' master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("for_10_") master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select "yesterday_11_" master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_13_") -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F31325F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_12_' master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_14_") -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F31325F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_12_' master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("for_15_") master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select "yesterday_16_" master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_18_") @@ -445,15 +441,13 @@ master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F31375F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_17_' master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select "yesterday_21_" master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F31375F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_17_' master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select "yesterday_24_" @@ -735,19 +729,15 @@ master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_8_") -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F375F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_7_' master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_9_") -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F375F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_7_' master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("for_10_") master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select "yesterday_11_" master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_13_") -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F31325F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_12_' master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_14_") -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F31325F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_12_' master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("for_15_") master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select "yesterday_16_" master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values("work_18_") @@ -755,15 +745,13 @@ master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F31375F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_17_' master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select "yesterday_21_" master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # User var # # @`string`=_latin1 0x656D657267656E63795F31375F COLLATE latin1_swedish_ci -master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select @'string' +master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select 'emergency_17_' master-bin.000001 # Table_map # # table_id: # (mysqltest1.t1) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `mysqltest1`; insert into t1 select "yesterday_24_" diff --git a/mysql-test/r/rpl_user_variables.result b/mysql-test/r/rpl_user_variables.result index 3b6002a5d2d..8cf5e11563a 100644 --- a/mysql-test/r/rpl_user_variables.result +++ b/mysql-test/r/rpl_user_variables.result @@ -223,10 +223,44 @@ SELECT * from t2; k 100 42 +drop table t1, t2; +reset master; +create table t1 (a int); +prepare s from "insert into t1 values (@a),(?)"; +set @a=98; +execute s using @a; +prepare s from "insert into t1 values (?)"; +set @a=99; +execute s using @a; +prepare s from "insert into t1 select 100 limit ?"; +set @a=100; +execute s using @a; +show binlog events limit 1,100; +Log_name Pos Event_type Server_id End_log_pos Info +slave-bin.000001 106 Query 1 192 use `test`; create table t1 (a int) +slave-bin.000001 192 User var 2 234 @`a`=98 +slave-bin.000001 234 Query 1 328 use `test`; insert into t1 values (@a),(98) +slave-bin.000001 328 Query 1 417 use `test`; insert into t1 values (99) +slave-bin.000001 417 Query 1 515 use `test`; insert into t1 select 100 limit 100 +select * from t1; +a +98 +98 +99 +100 +drop table t1; +create table t1(a int, b int); +prepare s1 from 'insert into t1 values (@x:=@x+1, ?)'; +set @x=1; +execute s1 using @x; +select * from t1; +a b +2 1 +select * from t1; +a b +2 1 +drop table t1; End of 5.0 tests. -DROP TABLE t1; -DROP TABLE t2; -DROP TABLE IF EXISTS t1; DROP FUNCTION IF EXISTS f1; DROP FUNCTION IF EXISTS f2; CREATE TABLE t1 (i INT); diff --git a/mysql-test/t/ctype_cp932_binlog_stm.test b/mysql-test/t/ctype_cp932_binlog_stm.test index 3e20e123258..6fbcb118d7a 100644 --- a/mysql-test/t/ctype_cp932_binlog_stm.test +++ b/mysql-test/t/ctype_cp932_binlog_stm.test @@ -22,7 +22,7 @@ CALL bug18293("Foo's a Bar", _cp932 0xED40ED41ED42, 47.93)| SELECT HEX(s1),HEX(s2),d FROM t4| DROP PROCEDURE bug18293| DROP TABLE t4| -SHOW BINLOG EVENTS FROM 410| +SHOW BINLOG EVENTS FROM 369| delimiter ;| # End of 5.0 tests diff --git a/mysql-test/t/rpl_user_variables.test b/mysql-test/t/rpl_user_variables.test index 226591bd13f..9364228fb6d 100644 --- a/mysql-test/t/rpl_user_variables.test +++ b/mysql-test/t/rpl_user_variables.test @@ -290,14 +290,49 @@ SELECT * from t1; SELECT * from t2; connection master; +drop table t1, t2; + +# +# Bug #26842: master binary log contains invalid queries - replication fails +# +save_master_pos; +connection slave; +sync_with_master; +reset master; + +connection master; +create table t1 (a int); +prepare s from "insert into t1 values (@a),(?)"; +set @a=98; execute s using @a; +prepare s from "insert into t1 values (?)"; +set @a=99; execute s using @a; +prepare s from "insert into t1 select 100 limit ?"; +set @a=100; execute s using @a; + +save_master_pos; +connection slave; +sync_with_master; +show binlog events limit 1,100; +select * from t1; +connection master; +drop table t1; + +# +# Bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements +# +connection master; +create table t1(a int, b int); +prepare s1 from 'insert into t1 values (@x:=@x+1, ?)'; +set @x=1; execute s1 using @x; +select * from t1; +sync_slave_with_master; +connection slave; +select * from t1; +connection master; +drop table t1; --echo End of 5.0 tests. -# Cleanup - -DROP TABLE t1; -DROP TABLE t2; - # This test uses a stored function that uses user-defined variables to return data # The test ensures the value of the user-defined variable is replicated correctly # and in the correct order of assignment. @@ -305,7 +340,6 @@ DROP TABLE t2; # This test was constructed for BUG#20141 --disable_warnings -DROP TABLE IF EXISTS t1; DROP FUNCTION IF EXISTS f1; DROP FUNCTION IF EXISTS f2; --enable_warnings @@ -351,4 +385,3 @@ DROP TABLE t1; sync_slave_with_master; stop slave; -