Loading mysql-test/extra/binlog_tests/binlog.test +39 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,45 @@ drop table t1; --replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/ show binlog events from 0; # # Bug #39182: Binary log producing incompatible character set query from # stored procedure. # reset master; CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE bug39182; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; DELIMITER //; CREATE PROCEDURE p1() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END// DELIMITER ;// CALL p1(); source include/show_binlog_events.inc; DROP PROCEDURE p1; DROP TABLE t1; DROP DATABASE bug39182; USE test; --echo End of 5.0 tests # Test of a too big SET INSERT_ID: see if the truncated value goes Loading mysql-test/r/ctype_cp932_binlog_stm.result +3 −3 Original line number Diff line number Diff line Loading @@ -40,9 +40,9 @@ IN ind DECIMAL(10,2)) BEGIN INSERT INTO t4 VALUES (ins1, ins2, ind); END master-bin.000001 784 Query 1 992 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93)) master-bin.000001 992 Query 1 1081 use `test`; DROP PROCEDURE bug18293 master-bin.000001 1081 Query 1 1160 use `test`; DROP TABLE t4 master-bin.000001 784 Query 1 1048 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172 COLLATE 'latin1_swedish_ci'), NAME_CONST('ins2',_cp932 0xED40ED41ED42 COLLATE 'cp932_japanese_ci'), NAME_CONST('ind',47.93)) master-bin.000001 1048 Query 1 1137 use `test`; DROP PROCEDURE bug18293 master-bin.000001 1137 Query 1 1216 use `test`; DROP TABLE t4 End of 5.0 tests SHOW BINLOG EVENTS FROM 364; ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error Loading mysql-test/suite/binlog/r/binlog_row_binlog.result +47 −0 Original line number Diff line number Diff line Loading @@ -1090,6 +1090,53 @@ master-bin.000001 295 Table_map 1 337 table_id: # (test.t1) master-bin.000001 337 Write_rows 1 383 table_id: # flags: STMT_END_F master-bin.000001 383 Query 1 452 use `test`; COMMIT master-bin.000001 452 Query 1 528 use `test`; drop table t1 reset master; CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE bug39182; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE PROCEDURE p1() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END// CALL p1(); c1 c2 c3 d1 d2 d3 utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2 show binlog events from <binlog_start>; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END DROP PROCEDURE p1; DROP TABLE t1; DROP DATABASE bug39182; USE test; End of 5.0 tests reset master; create table t1 (id tinyint auto_increment primary key); Loading mysql-test/suite/binlog/r/binlog_stm_binlog.result +50 −0 Original line number Diff line number Diff line Loading @@ -594,6 +594,56 @@ master-bin.000001 4 Format_desc 1 106 Server version, Binlog ver: 4 master-bin.000001 106 Query 1 227 use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned) master-bin.000001 227 Query 1 351 use `test`; insert into t1 values (9999999999999999,14632475938453979136) master-bin.000001 351 Query 1 427 use `test`; drop table t1 reset master; CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE bug39182; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE PROCEDURE p1() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END// CALL p1(); c1 c2 c3 d1 d2 d3 utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2 show binlog events from <binlog_start>; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END master-bin.000001 # Query # # use `bug39182`; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", NAME_CONST('s1',_utf8'test' COLLATE 'utf8_unicode_ci'), "%") master-bin.000001 # Query # # use `bug39182`; DROP TEMPORARY TABLE tmp1 DROP PROCEDURE p1; DROP TABLE t1; DROP DATABASE bug39182; USE test; End of 5.0 tests reset master; create table t1 (id tinyint auto_increment primary key); Loading mysql-test/suite/rpl/r/rpl_sp.result +2 −2 Original line number Diff line number Diff line Loading @@ -526,7 +526,7 @@ master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS t1 master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(col VARCHAR(10)) master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(arg VARCHAR(10)) INSERT INTO t1 VALUES(arg) master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test')) master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test' COLLATE 'latin1_swedish_ci')) master-bin.000001 # Query 1 # use `test`; DROP PROCEDURE p1 master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() SET @a = 1 Loading Loading @@ -869,7 +869,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(arg VARCHAR(10)) INSERT INTO t1 VALUES(arg) /*!*/; SET TIMESTAMP=t/*!*/; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test')) INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test' COLLATE 'latin1_swedish_ci')) /*!*/; SET TIMESTAMP=t/*!*/; DROP PROCEDURE p1 Loading Loading
mysql-test/extra/binlog_tests/binlog.test +39 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,45 @@ drop table t1; --replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/ show binlog events from 0; # # Bug #39182: Binary log producing incompatible character set query from # stored procedure. # reset master; CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE bug39182; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; DELIMITER //; CREATE PROCEDURE p1() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END// DELIMITER ;// CALL p1(); source include/show_binlog_events.inc; DROP PROCEDURE p1; DROP TABLE t1; DROP DATABASE bug39182; USE test; --echo End of 5.0 tests # Test of a too big SET INSERT_ID: see if the truncated value goes Loading
mysql-test/r/ctype_cp932_binlog_stm.result +3 −3 Original line number Diff line number Diff line Loading @@ -40,9 +40,9 @@ IN ind DECIMAL(10,2)) BEGIN INSERT INTO t4 VALUES (ins1, ins2, ind); END master-bin.000001 784 Query 1 992 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93)) master-bin.000001 992 Query 1 1081 use `test`; DROP PROCEDURE bug18293 master-bin.000001 1081 Query 1 1160 use `test`; DROP TABLE t4 master-bin.000001 784 Query 1 1048 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172 COLLATE 'latin1_swedish_ci'), NAME_CONST('ins2',_cp932 0xED40ED41ED42 COLLATE 'cp932_japanese_ci'), NAME_CONST('ind',47.93)) master-bin.000001 1048 Query 1 1137 use `test`; DROP PROCEDURE bug18293 master-bin.000001 1137 Query 1 1216 use `test`; DROP TABLE t4 End of 5.0 tests SHOW BINLOG EVENTS FROM 364; ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error Loading
mysql-test/suite/binlog/r/binlog_row_binlog.result +47 −0 Original line number Diff line number Diff line Loading @@ -1090,6 +1090,53 @@ master-bin.000001 295 Table_map 1 337 table_id: # (test.t1) master-bin.000001 337 Write_rows 1 383 table_id: # flags: STMT_END_F master-bin.000001 383 Query 1 452 use `test`; COMMIT master-bin.000001 452 Query 1 528 use `test`; drop table t1 reset master; CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE bug39182; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE PROCEDURE p1() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END// CALL p1(); c1 c2 c3 d1 d2 d3 utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2 show binlog events from <binlog_start>; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END DROP PROCEDURE p1; DROP TABLE t1; DROP DATABASE bug39182; USE test; End of 5.0 tests reset master; create table t1 (id tinyint auto_increment primary key); Loading
mysql-test/suite/binlog/r/binlog_stm_binlog.result +50 −0 Original line number Diff line number Diff line Loading @@ -594,6 +594,56 @@ master-bin.000001 4 Format_desc 1 106 Server version, Binlog ver: 4 master-bin.000001 106 Query 1 227 use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned) master-bin.000001 227 Query 1 351 use `test`; insert into t1 values (9999999999999999,14632475938453979136) master-bin.000001 351 Query 1 427 use `test`; drop table t1 reset master; CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE bug39182; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE PROCEDURE p1() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END// CALL p1(); c1 c2 c3 d1 d2 d3 utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2 show binlog events from <binlog_start>; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE s1 VARCHAR(255); SET s1= "test"; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); SELECT COLLATION(NAME_CONST('s1', _utf8'test')) c1, COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, COLLATION(s1) c3, COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, COERCIBILITY(s1) d3; DROP TEMPORARY TABLE tmp1; END master-bin.000001 # Query # # use `bug39182`; CREATE TEMPORARY TABLE tmp1 SELECT * FROM t1 WHERE a LIKE CONCAT("%", NAME_CONST('s1',_utf8'test' COLLATE 'utf8_unicode_ci'), "%") master-bin.000001 # Query # # use `bug39182`; DROP TEMPORARY TABLE tmp1 DROP PROCEDURE p1; DROP TABLE t1; DROP DATABASE bug39182; USE test; End of 5.0 tests reset master; create table t1 (id tinyint auto_increment primary key); Loading
mysql-test/suite/rpl/r/rpl_sp.result +2 −2 Original line number Diff line number Diff line Loading @@ -526,7 +526,7 @@ master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS t1 master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(col VARCHAR(10)) master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(arg VARCHAR(10)) INSERT INTO t1 VALUES(arg) master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test')) master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test' COLLATE 'latin1_swedish_ci')) master-bin.000001 # Query 1 # use `test`; DROP PROCEDURE p1 master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() SET @a = 1 Loading Loading @@ -869,7 +869,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(arg VARCHAR(10)) INSERT INTO t1 VALUES(arg) /*!*/; SET TIMESTAMP=t/*!*/; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test')) INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test' COLLATE 'latin1_swedish_ci')) /*!*/; SET TIMESTAMP=t/*!*/; DROP PROCEDURE p1 Loading