mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
2b20e84ff8
binlog even if they changed nothing, and a test for this. This is useful when users use these commands to clean up their master and slave by issuing one command on master (assume master and slave have slightly different data for some reason and you want to clean up both). Note that I have not changed multi-table DELETE and multi-table UPDATE because their error-reporting mechanism is more complicated.
99 lines
3.7 KiB
Text
99 lines
3.7 KiB
Text
# We are using .opt file since we need small binlog size
|
|
|
|
# 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/words.dat' into table t1;
|
|
load data infile '../../std_data/words.dat' into table t1;
|
|
load data infile '../../std_data/words.dat' into table t1;
|
|
load data infile '../../std_data/words.dat' into table t1;
|
|
load data infile '../../std_data/words.dat' into table t1;
|
|
load data infile '../../std_data/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 $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ $MYSQL_TEST_DIR/var/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 $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ $MYSQL_TEST_DIR/var/log/master-bin.000002
|
|
|
|
# this should show almost nothing
|
|
--disable_query_log
|
|
select "--- --database --" as "";
|
|
--enable_query_log
|
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --database=nottest $MYSQL_TEST_DIR/var/log/master-bin.000001
|
|
|
|
# this test for position option
|
|
--disable_query_log
|
|
select "--- --position --" as "";
|
|
--enable_query_log
|
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --position=27 $MYSQL_TEST_DIR/var/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 $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/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 $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002
|
|
|
|
# And this too ! (altough it is documented)
|
|
--disable_query_log
|
|
select "--- --database --" as "";
|
|
--enable_query_log
|
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --database=nottest master-bin.000001
|
|
|
|
# Strangely but this works
|
|
--disable_query_log
|
|
select "--- --position --" as "";
|
|
--enable_query_log
|
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --position=27 --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002
|
|
|
|
# clean up
|
|
drop table t1, t2;
|