mariadb/mysql-test/t/rpl_charset.test
unknown 07f5a44bc0 Review of new pushed code (Indentation fixes and simple optimizations)
Use 'mysqltest' as test database instead of test_$1 or test1,test2 to not accidently delete an important database
Safety fix for mailformed MERGE files


Build-tools/mysql-copyright:
  Print correct file name in case of errors
  Fixed indentation
include/config-win.h:
  Removed unnecessary #ifdef
myisammrg/myrg_open.c:
  Don't give a core if merge file contains INSERT_METHOD first (not legal but better safe than sorry)
  Don't set struct variables to zero that are already zero
  Indentation fixes
mysql-test/r/create.result:
  Use 'mysqltest' as test database
mysql-test/r/ndb_basic.result:
  Use 'mysqltest' as test database
mysql-test/r/ndb_blob.result:
  Use 'mysqltest' as test database
mysql-test/r/ndb_transaction.result:
  Use 'mysqltest' as test database
mysql-test/r/ps_1general.result:
  Use 'mysqltest' as test database
mysql-test/r/rpl_charset.result:
  Use 'mysqltest' as test database
mysql-test/r/rpl_delete_all.result:
  Use 'mysqltest' as test database
mysql-test/r/show_check.result:
  Use 'mysqltest' as test database
mysql-test/t/create.test:
  Use 'mysqltest' as test database
mysql-test/t/ndb_basic.test:
  Use 'mysqltest' as test database
mysql-test/t/ndb_blob.test:
  Use 'mysqltest' as test database
mysql-test/t/ndb_transaction.test:
  Use 'mysqltest' as test database
mysql-test/t/ps_1general.test:
  Use 'mysqltest' as test database
mysql-test/t/rpl_charset.test:
  Use 'mysqltest' as test database
mysql-test/t/rpl_delete_all.test:
  Use 'mysqltest' as test database
mysql-test/t/show_check.test:
  Use 'mysqltest' as test database
sql/field.h:
  Mark functions that should be deleted as soon as we have a new prototype for store(longlong)
sql/lock.cc:
  Indentation fix
sql/sql_base.cc:
  Better comment.
  Break find_item_in_list in case of perfect match
sql/sql_prepare.cc:
  Simple optimization
sql/sql_select.cc:
  Portability fix
2004-08-31 14:35:04 +03:00

153 lines
4.7 KiB
Text
Raw Blame History

# 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 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
# 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 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"));
--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 mysqltest2.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 mysqltest2.t1 order by a;
connection master;
drop database mysqltest2;
drop database mysqltest3;
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 ('<27><>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
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;