mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
4a7d3293b7
irrelevant to execute since the charset information does not affect replication for row-based replication. The row-based versions of the tests were removed, and the statement-based version of the test was made executable by all three modes. This involves removing any lines that causes the test to be dependent on the contents of the binary log, and instead we just check that the replication works as it should. BitKeeper/deleted/.del-rpl_ndb_charset.test: Delete: mysql-test/suite/rpl_ndb/t/rpl_ndb_charset.test BitKeeper/deleted/.del-rpl_ndb_charset.result: Delete: mysql-test/suite/rpl_ndb/r/rpl_ndb_charset.result BitKeeper/deleted/.del-rpl_row_charset.test: Delete: mysql-test/extra/rpl_tests/rpl_row_charset.test BitKeeper/deleted/.del-rpl_row_charset.test~739be9df1baaee3e: Delete: mysql-test/suite/rpl/t/rpl_row_charset.test BitKeeper/deleted/.del-rpl_row_charset_innodb.test: Delete: mysql-test/suite/rpl/t/rpl_row_charset_innodb.test BitKeeper/deleted/.del-rpl_row_charset_innodb-master.opt: Delete: mysql-test/suite/rpl/t/rpl_row_charset_innodb-master.opt BitKeeper/deleted/.del-rpl_row_charset_innodb-slave.opt: Delete: mysql-test/suite/rpl/t/rpl_row_charset_innodb-slave.opt BitKeeper/deleted/.del-rpl_row_charset_innodb.result: Delete: mysql-test/suite/rpl/r/rpl_row_charset_innodb.result BitKeeper/deleted/.del-rpl_row_charset.result: Delete: mysql-test/suite/rpl/r/rpl_row_charset.result mysql-test/extra/rpl_tests/rpl_charset.test: Test is not dependent on binlog format any more. Using --echo instead of "select" to print text. Removing lines causing the test to be dependent on binlog contents. mysql-test/suite/rpl/r/rpl_charset.result: Result change. mysql-test/suite/rpl/t/rpl_charset.test: Using renamed version of test file.
156 lines
4.7 KiB
Text
156 lines
4.7 KiB
Text
# Replication of character sets.
|
|
# This test will fail if the server/client does not support enough charsets.
|
|
|
|
source include/master-slave.inc;
|
|
--disable_warnings
|
|
set timestamp=1000000000;
|
|
drop database if exists mysqltest2;
|
|
drop database if exists mysqltest3;
|
|
--enable_warnings
|
|
|
|
create database mysqltest2 character set latin2;
|
|
set @@character_set_server=latin5;
|
|
create database mysqltest3;
|
|
--disable_query_log
|
|
select "--- --master--" as "";
|
|
--enable_query_log
|
|
show create database mysqltest2;
|
|
show create database mysqltest3;
|
|
sync_slave_with_master;
|
|
--disable_query_log
|
|
select "--- --slave--" as "";
|
|
--enable_query_log
|
|
show create database mysqltest2;
|
|
show create database mysqltest3;
|
|
|
|
connection master;
|
|
set @@collation_server=armscii8_bin;
|
|
drop database mysqltest3;
|
|
create database mysqltest3;
|
|
--disable_query_log
|
|
select "--- --master--" as "";
|
|
--enable_query_log
|
|
show create database mysqltest3;
|
|
sync_slave_with_master;
|
|
--disable_query_log
|
|
select "--- --slave--" as "";
|
|
--enable_query_log
|
|
show create database mysqltest3;
|
|
|
|
connection master;
|
|
use mysqltest2;
|
|
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
|
|
# needn't be replicated (Bar said in Jan 2005).
|
|
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);
|
|
--echo --- --master--
|
|
select * from t1 order by a;
|
|
sync_slave_with_master;
|
|
--echo --- --slave--
|
|
select * from mysqltest2.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"));
|
|
--echo --- --master--
|
|
select * from t1 order by a;
|
|
sync_slave_with_master;
|
|
--echo --- --slave--
|
|
select * from mysqltest2.t1 order by a;
|
|
|
|
# Presently charset info is not logged with LOAD DATA but it will
|
|
# change in Jan 2005 when Dmitri pushes his new LOAD DATA,
|
|
# before 5.0.3 goes out. When done, LOAD DATA INFILE should be tested
|
|
# here.
|
|
|
|
# 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.
|
|
connection master;
|
|
set @a= _cp850 'Müller' collate cp850_general_ci;
|
|
truncate table t1;
|
|
insert into t1 (b) values(collation(@a));
|
|
--echo --- --master--
|
|
select * from t1 order by a;
|
|
sync_slave_with_master;
|
|
--echo --- --slave--
|
|
select * from mysqltest2.t1 order by a;
|
|
|
|
connection master;
|
|
drop database mysqltest2;
|
|
drop database mysqltest3;
|
|
sync_slave_with_master;
|
|
|
|
# Check that we can change global.collation_server (since 5.0.3)
|
|
|
|
set global character_set_server=latin2;
|
|
set global character_set_server=latin1; # back
|
|
connection master;
|
|
set global character_set_server=latin2;
|
|
set global character_set_server=latin1; # back
|
|
|
|
# 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 1382
|
|
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;
|
|
|
|
#
|
|
# BUG#6676: Derivation of variables must be correct on slave
|
|
#
|
|
connection master;
|
|
eval create table `t1` (
|
|
`pk` varchar(10) not null default '',
|
|
primary key (`pk`)
|
|
) engine=$engine_type default charset=latin1;
|
|
set @p=_latin1 'test';
|
|
update t1 set pk='test' where pk=@p;
|
|
drop table t1;
|
|
sync_slave_with_master;
|
|
|
|
# End of 4.1 tests
|