2003-09-24 23:25:58 +04:00
|
|
|
|
# We are using .opt file since we need small binlog size
|
|
|
|
|
|
2005-03-29 17:17:46 -08:00
|
|
|
|
# Embedded server doesn't support binlogging
|
|
|
|
|
-- source include/not_embedded.inc
|
|
|
|
|
|
2003-09-24 23:25:58 +04:00
|
|
|
|
# we need this for getting fixed timestamps inside of this test
|
|
|
|
|
set timestamp=1000000000;
|
|
|
|
|
|
2004-06-09 16:07:01 +02:00
|
|
|
|
--disable_warnings
|
|
|
|
|
drop table if exists t1,t2;
|
|
|
|
|
--enable_warnings
|
|
|
|
|
|
2003-09-24 23:25:58 +04:00
|
|
|
|
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)
|
2006-01-24 08:30:54 +01:00
|
|
|
|
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;
|
2003-09-24 23:25:58 +04:00
|
|
|
|
# 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.
|
|
|
|
|
#
|
|
|
|
|
|
2006-01-24 08:30:54 +01:00
|
|
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
|
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000001
|
2003-09-29 23:10:30 +04:00
|
|
|
|
|
2003-09-24 23:25:58 +04:00
|
|
|
|
# this should not fail but shouldn't produce any working statements
|
|
|
|
|
--disable_query_log
|
|
|
|
|
select "--- Broken LOAD DATA --" as "";
|
|
|
|
|
--enable_query_log
|
2006-01-24 08:30:54 +01:00
|
|
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
|
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000002
|
2003-09-24 23:25:58 +04:00
|
|
|
|
|
|
|
|
|
# this should show almost nothing
|
|
|
|
|
--disable_query_log
|
|
|
|
|
select "--- --database --" as "";
|
|
|
|
|
--enable_query_log
|
2006-01-24 08:30:54 +01:00
|
|
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
|
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --database=nottest $MYSQLTEST_VARDIR/log/master-bin.000001
|
2003-09-24 23:25:58 +04:00
|
|
|
|
|
|
|
|
|
# this test for position option
|
|
|
|
|
--disable_query_log
|
|
|
|
|
select "--- --position --" as "";
|
|
|
|
|
--enable_query_log
|
2006-01-24 08:30:54 +01:00
|
|
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
|
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=231 $MYSQLTEST_VARDIR/log/master-bin.000002
|
2003-09-24 23:25:58 +04:00
|
|
|
|
|
|
|
|
|
# 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
|
2006-01-24 08:30:54 +01:00
|
|
|
|
--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
|
2003-09-24 23:25:58 +04:00
|
|
|
|
|
|
|
|
|
# This is broken too
|
|
|
|
|
--disable_query_log
|
|
|
|
|
select "--- Broken LOAD DATA --" as "";
|
|
|
|
|
--enable_query_log
|
2006-01-24 08:30:54 +01:00
|
|
|
|
--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
|
2003-09-24 23:25:58 +04:00
|
|
|
|
|
|
|
|
|
# And this too ! (altough it is documented)
|
|
|
|
|
--disable_query_log
|
|
|
|
|
select "--- --database --" as "";
|
|
|
|
|
--enable_query_log
|
2006-01-24 08:30:54 +01:00
|
|
|
|
--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
|
2003-09-24 23:25:58 +04:00
|
|
|
|
|
|
|
|
|
# Strangely but this works
|
|
|
|
|
--disable_query_log
|
|
|
|
|
select "--- --position --" as "";
|
|
|
|
|
--enable_query_log
|
2006-01-24 08:30:54 +01:00
|
|
|
|
--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
|
2003-09-24 23:25:58 +04:00
|
|
|
|
|
2005-02-04 14:29:54 +01:00
|
|
|
|
# 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
|
2005-09-24 04:11:51 +02:00
|
|
|
|
--exec $MYSQL_BINLOG --short-form - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
|
2005-02-04 14:29:54 +01:00
|
|
|
|
|
|
|
|
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
2005-09-24 04:11:51 +02:00
|
|
|
|
--exec $MYSQL_BINLOG --short-form --position=79 - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
|
2005-02-04 14:29:54 +01:00
|
|
|
|
|
2006-02-09 16:23:09 +02:00
|
|
|
|
# Bug#16217 (mysql client did not know how not switch its internal charset)
|
|
|
|
|
flush logs;
|
|
|
|
|
create table t3 (f text character set utf8);
|
|
|
|
|
create table t4 (f text character set cp932);
|
|
|
|
|
--exec $MYSQL --default-character-set=utf8 test -e "insert into t3 values(_utf8'ソ')"
|
|
|
|
|
--exec $MYSQL --default-character-set=cp932 test -e "insert into t4 values(_cp932'<27>\');"
|
|
|
|
|
flush logs;
|
|
|
|
|
rename table t3 to t03, t4 to t04;
|
|
|
|
|
--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000004 | $MYSQL --default-character-set=utf8
|
|
|
|
|
# original and recovered data must be equal
|
|
|
|
|
select HEX(f) from t03;
|
|
|
|
|
select HEX(f) from t3;
|
|
|
|
|
select HEX(f) from t04;
|
|
|
|
|
select HEX(f) from t4;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2003-09-24 23:25:58 +04:00
|
|
|
|
# clean up
|
2006-02-09 16:23:09 +02:00
|
|
|
|
drop table t1, t2, t03, t04, t3, t4;
|
2005-02-14 21:50:09 +01:00
|
|
|
|
|
2005-07-28 03:22:47 +03:00
|
|
|
|
# End of 4.1 tests
|