summaryrefslogtreecommitdiff
path: root/mysql-test/suite/ndb/t/ndb_binlog_basic.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/ndb/t/ndb_binlog_basic.test')
-rw-r--r--mysql-test/suite/ndb/t/ndb_binlog_basic.test72
1 files changed, 72 insertions, 0 deletions
diff --git a/mysql-test/suite/ndb/t/ndb_binlog_basic.test b/mysql-test/suite/ndb/t/ndb_binlog_basic.test
new file mode 100644
index 00000000000..e4642dc3230
--- /dev/null
+++ b/mysql-test/suite/ndb/t/ndb_binlog_basic.test
@@ -0,0 +1,72 @@
+-- source include/have_ndb.inc
+-- source include/have_binlog_format_row.inc
+
+--disable_warnings
+drop table if exists t1, t2;
+drop database if exists mysqltest;
+create database mysqltest;
+use mysqltest;
+drop database mysqltest;
+use test;
+--enable_warnings
+
+#
+# basic insert, update, delete test, alter, rename, drop
+# check that ndb_binlog_index gets the right info
+#
+
+create table t1 (a int primary key) engine=ndb;
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+save_master_pos;
+--replace_column 1 #
+select @max_epoch:=max(epoch)-1 from mysql.ndb_binlog_index;
+
+delete from t1;
+alter table t1 add (b int);
+insert into t1 values (3,3),(4,4);
+alter table t1 rename t2;
+
+# get all in one epoch
+begin;
+insert into t2 values (1,1),(2,2);
+update t2 set b=1 where a=3;
+delete from t2 where a=4;
+commit;
+drop table t2;
+
+# check that above is ok
+# (save_master_pos waits for last gcp to complete, ensuring that we have
+# the expected data in the binlog)
+save_master_pos;
+select inserts from mysql.ndb_binlog_index where epoch > @max_epoch and inserts > 5;
+select deletes from mysql.ndb_binlog_index where epoch > @max_epoch and deletes > 5;
+select inserts,updates,deletes from
+ mysql.ndb_binlog_index where epoch > @max_epoch and updates > 0;
+
+#
+# check that purge clears the ndb_binlog_index
+#
+flush logs;
+--sleep 1
+purge master logs before now();
+select count(*) from mysql.ndb_binlog_index;
+
+#
+# several tables in different databases
+# check that same table name in different databases don't mix up
+#
+create table t1 (a int primary key, b int) engine=ndb;
+create database mysqltest;
+use mysqltest;
+create table t1 (c int, d int primary key) engine=ndb;
+use test;
+
+insert into mysqltest.t1 values (2,1),(2,2);
+save_master_pos;
+--replace_column 1 #
+select @max_epoch:=max(epoch)-1 from mysql.ndb_binlog_index;
+
+drop table t1;
+drop database mysqltest;
+select inserts,updates,deletes from
+ mysql.ndb_binlog_index where epoch > @max_epoch and inserts > 0;