diff options
author | unknown <sergefp@mysql.com> | 2004-06-04 05:37:14 +0400 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2004-06-04 05:37:14 +0400 |
commit | e9c4cea9dea039c79c99940007833d7dde2c59dc (patch) | |
tree | c875aca91162dc7f6890e041f5c1faa5dcf5c929 /mysql-test | |
parent | f0beff16f37c2adee70d8226190b4c529e8b14b1 (diff) | |
parent | 948903fc4f47af2cf328424931a64030bec44442 (diff) | |
download | mariadb-git-e9c4cea9dea039c79c99940007833d7dde2c59dc.tar.gz |
Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/dbdata/psergey/mysql-4.1-ps-merge
sql/lex.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/rpl_charset.result | 199 | ||||
-rw-r--r-- | mysql-test/r/rpl_server_id1.result | 5 | ||||
-rw-r--r-- | mysql-test/r/rpl_user_variables.result | 12 | ||||
-rw-r--r-- | mysql-test/r/user_var.result | 33 | ||||
-rw-r--r-- | mysql-test/t/rpl_charset.test | 153 | ||||
-rw-r--r-- | mysql-test/t/rpl_server_id1.test | 8 | ||||
-rw-r--r-- | mysql-test/t/user_var.test | 21 |
7 files changed, 418 insertions, 13 deletions
diff --git a/mysql-test/r/rpl_charset.result b/mysql-test/r/rpl_charset.result new file mode 100644 index 00000000000..6ba82d0dd2f --- /dev/null +++ b/mysql-test/r/rpl_charset.result @@ -0,0 +1,199 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +drop database if exists test2; +drop database if exists test3; +create database test2 character set latin2; +set @@character_set_server=latin5; +create database test3; + +--- --master-- +show create database test2; +Database Create Database +test2 CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET latin2 */ +show create database test3; +Database Create Database +test3 CREATE DATABASE `test3` /*!40100 DEFAULT CHARACTER SET latin5 */ + +--- --slave-- +show create database test2; +Database Create Database +test2 CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET latin2 */ +show create database test3; +Database Create Database +test3 CREATE DATABASE `test3` /*!40100 DEFAULT CHARACTER SET latin5 */ +set @@collation_server=armscii_bin; +drop database test3; +create database test3; + +--- --master-- +show create database test3; +Database Create Database +test3 CREATE DATABASE `test3` /*!40100 DEFAULT CHARACTER SET armscii8 COLLATE armscii_bin */ + +--- --slave-- +show create database test3; +Database Create Database +test3 CREATE DATABASE `test3` /*!40100 DEFAULT CHARACTER SET armscii8 COLLATE armscii_bin */ +use test2; +create table t1 (a int auto_increment primary key, b varchar(100)); +set character_set_client=cp850, collation_connection=latin2_croatian_ci; +insert into t1 (b) values(@@character_set_server); +insert into t1 (b) values(@@collation_server); +insert into t1 (b) values(@@character_set_client); +insert into t1 (b) values(@@character_set_connection); +insert into t1 (b) values(@@collation_connection); + +--- --master-- +select * from t1 order by a; +a b +1 armscii8 +2 armscii_bin +3 cp850 +4 latin2 +5 latin2_croatian_ci + +--- --slave-- +select * from test2.t1 order by a; +a b +1 armscii8 +2 armscii_bin +3 cp850 +4 latin2 +5 latin2_croatian_ci +set character_set_client=latin1, collation_connection=latin1_german1_ci; +truncate table t1; +insert into t1 (b) values(@@collation_connection); +insert into t1 (b) values(LEAST("Müller","Muffler")); +set collation_connection=latin1_german2_ci; +insert into t1 (b) values(@@collation_connection); +insert into t1 (b) values(LEAST("Müller","Muffler")); + +--- --master-- +select * from t1 order by a; +a b +1 latin1_german1_ci +2 Muffler +3 latin1_german2_ci +4 Müller + +--- --slave-- +select * from test2.t1 order by a; +a b +1 latin1_german1_ci +2 Muffler +3 latin1_german2_ci +4 Müller +load data infile '../../std_data/words.dat' into table t1 (b); +set @a= _cp850 'Müller' collate cp850_general_ci; +truncate table t1; +insert into t1 (b) values(collation(@a)); + +--- --master-- +select * from t1 order by a; +a b +1 cp850_general_ci + +--- --slave-- +select * from test2.t1 order by a; +a b +1 cp850_general_ci +drop database test2; +drop database test3; +show binlog events from 79; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000001 79 Query 1 79 use `test`; create database test2 character set latin2 +master-bin.000001 156 Query 1 156 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=30 +master-bin.000001 290 Query 1 290 use `test`; create database test3 +master-bin.000001 346 Query 1 346 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=64 +master-bin.000001 480 Query 1 480 use `test`; drop database test3 +master-bin.000001 534 Query 1 534 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=64 +master-bin.000001 668 Query 1 668 use `test`; create database test3 +master-bin.000001 724 Query 1 724 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 859 Query 1 859 use `test2`; create table t1 (a int auto_increment primary key, b varchar(100)) +master-bin.000001 961 Query 1 961 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 1097 Intvar 1 1097 INSERT_ID=1 +master-bin.000001 1125 Query 1 1125 use `test2`; insert into t1 (b) values(@@character_set_server) +master-bin.000001 1210 Query 1 1210 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 1346 Intvar 1 1346 INSERT_ID=2 +master-bin.000001 1374 Query 1 1374 use `test2`; insert into t1 (b) values(@@collation_server) +master-bin.000001 1455 Query 1 1455 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 1591 Intvar 1 1591 INSERT_ID=3 +master-bin.000001 1619 Query 1 1619 use `test2`; insert into t1 (b) values(@@character_set_client) +master-bin.000001 1704 Query 1 1704 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 1840 Intvar 1 1840 INSERT_ID=4 +master-bin.000001 1868 Query 1 1868 use `test2`; insert into t1 (b) values(@@character_set_connection) +master-bin.000001 1957 Query 1 1957 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 2093 Intvar 1 2093 INSERT_ID=5 +master-bin.000001 2121 Query 1 2121 use `test2`; insert into t1 (b) values(@@collation_connection) +master-bin.000001 2206 Query 1 2206 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 2341 Query 1 2341 use `test2`; truncate table t1 +master-bin.000001 2394 Query 1 2394 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 2529 Intvar 1 2529 INSERT_ID=1 +master-bin.000001 2557 Query 1 2557 use `test2`; insert into t1 (b) values(@@collation_connection) +master-bin.000001 2642 Query 1 2642 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 2777 Intvar 1 2777 INSERT_ID=2 +master-bin.000001 2805 Query 1 2805 use `test2`; insert into t1 (b) values(LEAST("Müller","Muffler")) +master-bin.000001 2893 Query 1 2893 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 3029 Intvar 1 3029 INSERT_ID=3 +master-bin.000001 3057 Query 1 3057 use `test2`; insert into t1 (b) values(@@collation_connection) +master-bin.000001 3142 Query 1 3142 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 3278 Intvar 1 3278 INSERT_ID=4 +master-bin.000001 3306 Query 1 3306 use `test2`; insert into t1 (b) values(LEAST("Müller","Muffler")) +master-bin.000001 3394 Query 1 3394 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 3530 Intvar 1 3530 INSERT_ID=74 +master-bin.000001 3558 Create_file 1 3558 db=test2;table=t1;file_id=1;block_len=581 +master-bin.000001 4226 Query 1 4226 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 4362 Intvar 1 4362 INSERT_ID=5 +master-bin.000001 4390 Exec_load 1 4390 ;file_id=1 +master-bin.000001 4413 Query 1 4413 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 4549 Query 1 4549 use `test2`; truncate table t1 +master-bin.000001 4602 Query 1 4602 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 4738 Intvar 1 4738 INSERT_ID=1 +master-bin.000001 4766 User var 1 4766 @`a`=_cp850'Müller' COLLATE cp850_general_ci +master-bin.000001 4806 Query 1 4806 use `test2`; insert into t1 (b) values(collation(@a)) +master-bin.000001 4882 Query 1 4882 use `test2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 5018 Query 1 5018 use `test2`; drop database test2 +master-bin.000001 5073 Query 1 5073 SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64 +master-bin.000001 5204 Query 1 5204 drop database test3 +set global character_set_server=latin2; +ERROR HY000: Binary logging and replication forbid changing the global server character set or collation +set global character_set_server=latin2; +ERROR HY000: Binary logging and replication forbid changing the global server character set or collation +set one_shot @@character_set_server=latin5; +set @@max_join_size=1000; +select @@character_set_server; +@@character_set_server +latin5 +select @@character_set_server; +@@character_set_server +latin1 +set @@character_set_server=latin5; +select @@character_set_server; +@@character_set_server +latin5 +select @@character_set_server; +@@character_set_server +latin5 +set one_shot max_join_size=10; +ERROR HY000: The SET ONE_SHOT syntax is reserved for purposes internal to the MySQL server +set character_set_client=9999999; +ERROR 42000: Unknown character set: '9999999' +set collation_server=9999998; +ERROR HY000: Unknown collation: '9999998' +use test; +CREATE TABLE t1 (c1 VARBINARY(255), c2 VARBINARY(255)); +SET CHARACTER_SET_CLIENT=koi8r, +CHARACTER_SET_CONNECTION=cp1251, +CHARACTER_SET_RESULTS=koi8r; +INSERT INTO t1 (c1, c2) VALUES ('îÕ, ÚÁ ÒÙÂÁÌËÕ','îÕ, ÚÁ ÒÙÂÁÌËÕ'); +select hex(c1), hex(c2) from t1; +hex(c1) hex(c2) +CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3 +select hex(c1), hex(c2) from t1; +hex(c1) hex(c2) +CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3 +drop table t1; diff --git a/mysql-test/r/rpl_server_id1.result b/mysql-test/r/rpl_server_id1.result index 8c383802de4..32e14b053d7 100644 --- a/mysql-test/r/rpl_server_id1.result +++ b/mysql-test/r/rpl_server_id1.result @@ -15,8 +15,5 @@ start slave; insert into t1 values (1); show status like "slave_running"; Variable_name Value -Slave_running ON -select * from t1; -n -1 +Slave_running OFF drop table t1; diff --git a/mysql-test/r/rpl_user_variables.result b/mysql-test/r/rpl_user_variables.result index 71147772ac4..7bb5dc163ea 100644 --- a/mysql-test/r/rpl_user_variables.result +++ b/mysql-test/r/rpl_user_variables.result @@ -86,11 +86,11 @@ slave-bin.000001 313 Query 1 313 use `test`; insert into t1 values (@i1), (@i2), slave-bin.000001 396 User var 2 396 @r1=12.5 slave-bin.000001 439 User var 2 439 @r2=-12.5 slave-bin.000001 482 Query 1 482 use `test`; insert into t1 values (@r1), (@r2) -slave-bin.000001 551 User var 2 551 @s1='This is a test' -slave-bin.000001 600 User var 2 600 @s2='' -slave-bin.000001 635 User var 2 635 @s3='abc'def' -slave-bin.000001 677 User var 2 677 @s4='abc\def' -slave-bin.000001 719 User var 2 719 @s5='abc'def' +slave-bin.000001 551 User var 2 551 @s1=_latin1'This is a test' COLLATE latin1_swedish_ci +slave-bin.000001 600 User var 2 600 @s2=_latin1'' COLLATE latin1_swedish_ci +slave-bin.000001 635 User var 2 635 @s3=_latin1'abc'def' COLLATE latin1_swedish_ci +slave-bin.000001 677 User var 2 677 @s4=_latin1'abc\def' COLLATE latin1_swedish_ci +slave-bin.000001 719 User var 2 719 @s5=_latin1'abc'def' COLLATE latin1_swedish_ci slave-bin.000001 761 Query 1 761 use `test`; insert into t1 values (@s1), (@s2), (@s3), (@s4), (@s5) slave-bin.000001 851 User var 2 851 @n1=NULL slave-bin.000001 877 Query 1 877 use `test`; insert into t1 values (@n1) @@ -99,7 +99,7 @@ slave-bin.000001 965 Query 1 965 use `test`; insert into t1 values (@n2) slave-bin.000001 1027 Query 1 1027 use `test`; insert into t1 values (@a:=0), (@a:=@a+1), (@a:=@a+1) slave-bin.000001 1115 User var 2 1115 @a=2 slave-bin.000001 1157 Query 1 1157 use `test`; insert into t1 values (@a+(@b:=@a+1)) -slave-bin.000001 1229 User var 2 1229 @q='abc' +slave-bin.000001 1229 User var 2 1229 @q=_latin1'abc' COLLATE latin1_swedish_ci slave-bin.000001 1266 Query 1 1266 use `test`; insert t1 values (@q), (@q:=concat(@q, 'n1')), (@q:=concat(@q, 'n2')) slave-bin.000001 1370 User var 2 1370 @a=5 slave-bin.000001 1412 Query 1 1412 use `test`; insert into t1 values (@a),(@a) diff --git a/mysql-test/r/user_var.result b/mysql-test/r/user_var.result index a9351d2f1fb..605780a7280 100644 --- a/mysql-test/r/user_var.result +++ b/mysql-test/r/user_var.result @@ -162,3 +162,36 @@ charset(@a) collation(@a) coercibility(@a) latin2 latin2_bin 0 select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci; ERROR HY000: Illegal mix of collations (latin2_bin,EXPLICIT) and (latin2_general_ci,EXPLICIT) for operation '=' +create table t1 (a varchar(50)); +reset master; +SET TIMESTAMP=10000; +SET @`a b`='hello'; +INSERT INTO t1 VALUES(@`a b`); +set @var1= "';aaa"; +insert into t1 values (@var1); +create table t2 (c char(30)) charset=ucs2; +set @v=convert('abc' using ucs2); +insert into t2 values (@v); +show binlog events from 79; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000001 79 User var 1 79 @`a b`=_latin1'hello' COLLATE latin1_swedish_ci +master-bin.000001 120 Query 1 120 use `test`; INSERT INTO t1 VALUES(@`a b`) +master-bin.000001 184 User var 1 184 @`var1`=_latin1'\';aaa' COLLATE latin1_swedish_ci +master-bin.000001 226 Query 1 226 use `test`; insert into t1 values (@var1) +master-bin.000001 290 Query 1 290 use `test`; create table t2 (c char(30)) charset=ucs2 +master-bin.000001 366 User var 1 366 @`v`=_ucs2'\0a\0b\0c' COLLATE ucs2_general_ci +master-bin.000001 406 Query 1 406 use `test`; insert into t2 values (@v) +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +SET @`a b`:=_latin1'hello' COLLATE latin1_swedish_ci; +use test; +SET TIMESTAMP=10000; +INSERT INTO t1 VALUES(@`a b`); +SET @`var1`:=_latin1'\';aaa' COLLATE latin1_swedish_ci; +SET TIMESTAMP=10000; +insert into t1 values (@var1); +SET TIMESTAMP=10000; +create table t2 (c char(30)) charset=ucs2; +SET @`v`:=_ucs2'\0a\0b\0c' COLLATE ucs2_general_ci; +SET TIMESTAMP=10000; +insert into t2 values (@v); +drop table t1, t2; diff --git a/mysql-test/t/rpl_charset.test b/mysql-test/t/rpl_charset.test new file mode 100644 index 00000000000..c13b57a3108 --- /dev/null +++ b/mysql-test/t/rpl_charset.test @@ -0,0 +1,153 @@ +# Replication of character sets. +# This test will fail if the server/client does not support enough charsets. + +# Remember that there currently exists +# Bug #2326: Charset of table is determined by charset of db only if "USE db;" + +source include/master-slave.inc; +--disable_warnings +drop database if exists test2; +drop database if exists test3; +--enable_warnings + +create database test2 character set latin2; +set @@character_set_server=latin5; +create database test3; +--disable_query_log +select "--- --master--" as ""; +--enable_query_log +show create database test2; +show create database test3; +sync_slave_with_master; +--disable_query_log +select "--- --slave--" as ""; +--enable_query_log +show create database test2; +show create database test3; + +connection master; +set @@collation_server=armscii_bin; +drop database test3; +create database test3; +--disable_query_log +select "--- --master--" as ""; +--enable_query_log +show create database test3; +sync_slave_with_master; +--disable_query_log +select "--- --slave--" as ""; +--enable_query_log +show create database test3; + +connection master; +use test2; +create table t1 (a int auto_increment primary key, b varchar(100)); +set character_set_client=cp850, collation_connection=latin2_croatian_ci; +insert into t1 (b) values(@@character_set_server); +insert into t1 (b) values(@@collation_server); +# character_set_database and collation_database are not tested as they +# are not replicated (Bar said that this variable may be removed shortly). +insert into t1 (b) values(@@character_set_client); +# collation_client does not exist +insert into t1 (b) values(@@character_set_connection); +insert into t1 (b) values(@@collation_connection); +--disable_query_log +select "--- --master--" as ""; +--enable_query_log +select * from t1 order by a; +sync_slave_with_master; +--disable_query_log +select "--- --slave--" as ""; +--enable_query_log +select * from test2.t1 order by a; + +connection master; +set character_set_client=latin1, collation_connection=latin1_german1_ci; +truncate table t1; +insert into t1 (b) values(@@collation_connection); +insert into t1 (b) values(LEAST("Müller","Muffler")); +set collation_connection=latin1_german2_ci; +insert into t1 (b) values(@@collation_connection); +insert into t1 (b) values(LEAST("Müller","Muffler")); +--disable_query_log +select "--- --master--" as ""; +--enable_query_log +select * from t1 order by a; +sync_slave_with_master; +--disable_query_log +select "--- --slave--" as ""; +--enable_query_log +select * from test2.t1 order by a; + +# See if SET ONE_SHOT gets into binlog when LOAD DATA +connection master; +load data infile '../../std_data/words.dat' into table t1 (b); + +# See if user var is prefixed with collation in binlog and replicated well. +# Note: replication of user variables is broken as far as derivation is +# concerned. That's because when we store a user variable in the binlog, +# we lose its derivation. So later on the slave, it's impossible to +# know if the collation was explicit or not, so we use DERIVATION_NONE, +# which provokes error messages (like 'Illegal mix of collation') when +# we replay the master's INSERT/etc statements. +set @a= _cp850 'Müller' collate cp850_general_ci; +truncate table t1; +insert into t1 (b) values(collation(@a)); +--disable_query_log +select "--- --master--" as ""; +--enable_query_log +select * from t1 order by a; +sync_slave_with_master; +--disable_query_log +select "--- --slave--" as ""; +--enable_query_log +select * from test2.t1 order by a; + +connection master; +drop database test2; +drop database test3; +show binlog events from 79; +sync_slave_with_master; + +# Check that we can't change global.collation_server + +error 1105; +set global character_set_server=latin2; +connection master; +error 1105; +set global character_set_server=latin2; + +# Check that SET ONE_SHOT is really one shot + +set one_shot @@character_set_server=latin5; +set @@max_join_size=1000; +select @@character_set_server; +select @@character_set_server; +set @@character_set_server=latin5; +select @@character_set_server; +select @@character_set_server; + +# ONE_SHOT on not charset/collation stuff is not allowed +error 1105; +set one_shot max_join_size=10; + +# Test of wrong character set numbers; +error 1115; +set character_set_client=9999999; +error 1273; +set collation_server=9999998; + +# This one was contributed by Sergey Petrunia (BUG#3943) + +use test; +CREATE TABLE t1 (c1 VARBINARY(255), c2 VARBINARY(255)); +SET CHARACTER_SET_CLIENT=koi8r, + CHARACTER_SET_CONNECTION=cp1251, + CHARACTER_SET_RESULTS=koi8r; +INSERT INTO t1 (c1, c2) VALUES ('îÕ, ÚÁ ÒÙÂÁÌËÕ','îÕ, ÚÁ ÒÙÂÁÌËÕ'); +select hex(c1), hex(c2) from t1; +sync_slave_with_master; +select hex(c1), hex(c2) from t1; +connection master; +drop table t1; +sync_slave_with_master; diff --git a/mysql-test/t/rpl_server_id1.test b/mysql-test/t/rpl_server_id1.test index aefcb81c930..4d504325294 100644 --- a/mysql-test/t/rpl_server_id1.test +++ b/mysql-test/t/rpl_server_id1.test @@ -1,5 +1,8 @@ -# This test checks that a slave does not execute queries originating -# from itself, by default. +# This test checks that the slave I/O thread refuses to start if slave +# and master have the same server id (because this is a useless setup, +# and otherwise SHOW SLAVE STATUS shows progress but all queries are +# ignored, which has caught our customers), unless +# --replicate-same-server-id. source include/master-slave.inc; connection slave; @@ -18,5 +21,4 @@ insert into t1 values (1); # (when slave is its own master without --replicate-same-server-id) sleep 2; # enough time for the event to be replicated (it should not) show status like "slave_running"; -select * from t1; drop table t1; diff --git a/mysql-test/t/user_var.test b/mysql-test/t/user_var.test index a28b327cf58..601724e68c8 100644 --- a/mysql-test/t/user_var.test +++ b/mysql-test/t/user_var.test @@ -99,3 +99,24 @@ select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST'; select charset(@a),collation(@a),coercibility(@a); --error 1267 select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci; + +# Check that user variables are binlogged correctly (BUG#3875) +create table t1 (a varchar(50)); +reset master; +SET TIMESTAMP=10000; +SET @`a b`='hello'; +INSERT INTO t1 VALUES(@`a b`); +set @var1= "';aaa"; +insert into t1 values (@var1); +create table t2 (c char(30)) charset=ucs2; +set @v=convert('abc' using ucs2); +insert into t2 values (@v); +show binlog events from 79; +# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we +# absolutely need variables names to be quoted and strings to be +# escaped). +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR +--exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001 +drop table t1, t2; + + |