ndb_binlog_basic.test 2.07 KB
Newer Older
tomas@poseidon.ndb.mysql.com's avatar
tomas@poseidon.ndb.mysql.com committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
-- 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 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 #
22
select @max_epoch:=max(epoch)-1 from cluster.binlog_index;
tomas@poseidon.ndb.mysql.com's avatar
tomas@poseidon.ndb.mysql.com committed
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

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;
41 42
select inserts from cluster.binlog_index where epoch > @max_epoch and inserts > 5;
select deletes from cluster.binlog_index where epoch > @max_epoch and deletes > 5;
tomas@poseidon.ndb.mysql.com's avatar
tomas@poseidon.ndb.mysql.com committed
43
select inserts,updates,deletes from 
44
  cluster.binlog_index where epoch > @max_epoch and updates > 0;
tomas@poseidon.ndb.mysql.com's avatar
tomas@poseidon.ndb.mysql.com committed
45
select schemaops from 
46
  cluster.binlog_index where epoch > @max_epoch and schemaops > 0;
tomas@poseidon.ndb.mysql.com's avatar
tomas@poseidon.ndb.mysql.com committed
47 48 49 50 51 52 53

#
# check that purge clears the binlog_index
#
flush logs;
--sleep 1
purge master logs before now();
54
select count(*) from cluster.binlog_index;
tomas@poseidon.ndb.mysql.com's avatar
tomas@poseidon.ndb.mysql.com committed
55 56 57 58 59 60 61 62 63 64 65 66 67 68

#
# 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 #
69
select @max_epoch:=max(epoch)-1 from cluster.binlog_index;
tomas@poseidon.ndb.mysql.com's avatar
tomas@poseidon.ndb.mysql.com committed
70 71 72 73

drop table t1;
drop database mysqltest;
select inserts,updates,deletes from 
74
  cluster.binlog_index where epoch > @max_epoch and inserts > 0;
tomas@poseidon.ndb.mysql.com's avatar
tomas@poseidon.ndb.mysql.com committed
75
select schemaops from
76
  cluster.binlog_index where epoch > @max_epoch and schemaops > 0;