mirror of
https://github.com/MariaDB/server.git
synced 2025-05-25 13:42:52 +03:00

The problem happened because those tests were using "cp932" and "ucs2" without checking whether these character sets are available. This fix moves test parts to make character set specific parts be tested only if they are: - some parts were moved to "ctype_ucs.test" and "ctype_cp932.test" - some parts were moved to the newly added tests "innodb-ucs2.test", "mysqlbinglog-cp932.test" and "sp-ucs2.test"
126 lines
4.8 KiB
Plaintext
126 lines
4.8 KiB
Plaintext
# We are using .opt file since we need small binlog size
|
||
|
||
# Embedded server doesn't support binlogging
|
||
-- source include/not_embedded.inc
|
||
|
||
# we need this for getting fixed timestamps inside of this test
|
||
set timestamp=1000000000;
|
||
|
||
--disable_warnings
|
||
drop table if exists t1,t2;
|
||
--enable_warnings
|
||
|
||
create table t1 (word varchar(20));
|
||
create table t2 (id int auto_increment not null primary key);
|
||
|
||
# simple test for simple statement and various events
|
||
insert into t1 values ("abirvalg");
|
||
insert into t2 values ();
|
||
# Should be uncommented in 4.1
|
||
# set @a:=1
|
||
# insert into t2 values (@a);
|
||
|
||
# test for load data and load data distributed among the several
|
||
# files (we need to fill up first binlog)
|
||
load data infile '../std_data_ln/words.dat' into table t1;
|
||
load data infile '../std_data_ln/words.dat' into table t1;
|
||
load data infile '../std_data_ln/words.dat' into table t1;
|
||
load data infile '../std_data_ln/words.dat' into table t1;
|
||
load data infile '../std_data_ln/words.dat' into table t1;
|
||
# simple query to show more in second binlog
|
||
insert into t1 values ("Alas");
|
||
flush logs;
|
||
|
||
# delimiters are for easier debugging in future
|
||
--disable_query_log
|
||
select "--- Local --" as "";
|
||
--enable_query_log
|
||
|
||
#
|
||
# We should use --short-form everywhere because in other case output will
|
||
# be time dependend. Better than nothing.
|
||
#
|
||
|
||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000001
|
||
|
||
# this should not fail but shouldn't produce any working statements
|
||
--disable_query_log
|
||
select "--- Broken LOAD DATA --" as "";
|
||
--enable_query_log
|
||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000002 2> /dev/null
|
||
|
||
# this should show almost nothing
|
||
--disable_query_log
|
||
select "--- --database --" as "";
|
||
--enable_query_log
|
||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --database=nottest $MYSQLTEST_VARDIR/log/master-bin.000001 2> /dev/null
|
||
|
||
# this test for position option
|
||
--disable_query_log
|
||
select "--- --position --" as "";
|
||
--enable_query_log
|
||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=231 $MYSQLTEST_VARDIR/log/master-bin.000002
|
||
|
||
# These are tests for remote binlog.
|
||
# They should return the same as previous test.
|
||
|
||
--disable_query_log
|
||
select "--- Remote --" as "";
|
||
--enable_query_log
|
||
|
||
# This is broken now
|
||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
|
||
|
||
# This is broken too
|
||
--disable_query_log
|
||
select "--- Broken LOAD DATA --" as "";
|
||
--enable_query_log
|
||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002 2> /dev/null
|
||
|
||
# And this too ! (altough it is documented)
|
||
--disable_query_log
|
||
select "--- --database --" as "";
|
||
--enable_query_log
|
||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --database=nottest master-bin.000001 2> /dev/null
|
||
|
||
# Strangely but this works
|
||
--disable_query_log
|
||
select "--- --position --" as "";
|
||
--enable_query_log
|
||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --position=231 --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002
|
||
|
||
# Bug#7853 (mysqlbinlog does not accept input from stdin)
|
||
--disable_query_log
|
||
select "--- reading stdin --" as "";
|
||
--enable_query_log
|
||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||
--exec $MYSQL_BINLOG --short-form - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
|
||
|
||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||
--exec $MYSQL_BINLOG --short-form --position=79 - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
|
||
|
||
#
|
||
#BUG#14157: utf8 encoding in binlog without set character_set_client
|
||
#
|
||
flush logs;
|
||
--exec $MYSQL test -e 'create table if not exists t5 (a int); set names latin1; create temporary table `<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>` (a int); insert into `<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>` values (1); insert into t5 select * from `<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`'
|
||
|
||
# resulted binlog, parly consisting of multi-byte utf8 chars,
|
||
# must be digestable for both client and server. In 4.1 the client
|
||
# should use default-character-set same as the server.
|
||
--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000004 | $MYSQL
|
||
select * from t5 /* must be (1),(1) */;
|
||
|
||
# clean up
|
||
drop table t1, t2, t5;
|
||
|
||
--echo End of 5.0 tests
|