summaryrefslogtreecommitdiff
path: root/mysql-test/t/mysqlbinlog.test
diff options
context:
space:
mode:
authorunknown <dlenev@mysql.com>2003-09-24 23:25:58 +0400
committerunknown <dlenev@mysql.com>2003-09-24 23:25:58 +0400
commit87bc22a509f7309defe94d1579844cddca7218b3 (patch)
tree57d78fcb2aa072aed41aaf4ca6d720ef7f0818f9 /mysql-test/t/mysqlbinlog.test
parent052f9bc37f0fe056d720fbf9c604cd318aa35529 (diff)
downloadmariadb-git-87bc22a509f7309defe94d1579844cddca7218b3.tar.gz
Test for mysqlbinlog
Particularly for BUG#1340 mysqlbinlog coredumps when reading Exec event without seeing Create_file event before mysql-test/mysql-test-run.sh: Now mysqlbinlog will use proper temporary directory
Diffstat (limited to 'mysql-test/t/mysqlbinlog.test')
-rw-r--r--mysql-test/t/mysqlbinlog.test95
1 files changed, 95 insertions, 0 deletions
diff --git a/mysql-test/t/mysqlbinlog.test b/mysql-test/t/mysqlbinlog.test
new file mode 100644
index 00000000000..78992cb1e11
--- /dev/null
+++ b/mysql-test/t/mysqlbinlog.test
@@ -0,0 +1,95 @@
+# We are using .opt file since we need small binlog size
+--disable_warnings
+drop table if exists t1;
+drop table if exists t2;
+--enable_warnings
+
+# we need this for getting fixed timestamps inside of this test
+set timestamp=1000000000;
+
+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.
+#
+
+--exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.001
+# this should not fail but shouldn't produce any working statements
+--disable_query_log
+select "--- Broken LOAD DATA --" as "";
+--enable_query_log
+--exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.002
+
+# this should show almost nothing
+--disable_query_log
+select "--- --database --" as "";
+--enable_query_log
+--exec $MYSQL_BINLOG --short-form --database=nottest $MYSQL_TEST_DIR/var/log/master-bin.001
+
+# this test for position option
+--disable_query_log
+select "--- --position --" as "";
+--enable_query_log
+--exec $MYSQL_BINLOG --short-form --position=27 $MYSQL_TEST_DIR/var/log/master-bin.002
+
+# These are tests for remote binlog.
+# They should return the same as previous test.
+# But now they are not. V. Vagin should fix this.
+# We test all the same options second time since code for remote case is
+# essentially different. If code for both cases will be unified we'll be
+# able to throw out most of this.
+
+--disable_query_log
+select "--- Remote --" as "";
+--enable_query_log
+
+# This is broken now
+# By the way it seems that remote version fetches all events with name >= master-bin.001
+--exec $MYSQL_BINLOG --short-form --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.001
+
+# This is broken too
+--disable_query_log
+select "--- Broken LOAD DATA --" as "";
+--enable_query_log
+--exec $MYSQL_BINLOG --short-form --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.002
+
+# And this too ! (altough it is documented)
+--disable_query_log
+select "--- --database --" as "";
+--enable_query_log
+--exec $MYSQL_BINLOG --short-form --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --database=nottest master-bin.001
+
+# Strangely but this works
+--disable_query_log
+select "--- --position --" as "";
+--enable_query_log
+--exec $MYSQL_BINLOG --short-form --position=27 --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.002
+
+# clean up
+drop table t1;