--source include/have_ndb.inc --source suite/ndb_rpl/ndb_master-slave.inc # # basic test of blob replication for NDB # # easy test --connection master create table t1 ( a int not null primary key, b text not null ) engine=ndb; insert into t1 values(1, repeat('abc',10)); insert into t1 values(2, repeat('def',200)); insert into t1 values(3, repeat('ghi',3000)); select 'M', a, sha1(b) from t1 order by a; --sync_slave_with_master --sleep 5 --connection slave select 'S', a, sha1(b) from t1 order by a; --connection master update t1 set b = repeat('xyz',3000) where a = 1; delete from t1 where a = 2; update t1 set b = concat(b,'xyz') where a = 3; select 'M', a, sha1(b) from t1 order by a; --sync_slave_with_master --sleep 5 --connection slave select 'S', a, sha1(b) from t1 order by a; --connection master drop table t1; --sync_slave_with_master # hard test --connection master create table t1 ( a int not null primary key, b text not null, c int, d longblob, e tinyblob ) engine=ndbcluster; --disable_query_log # length 61 set @s0 = 'rggurloniukyehuxdbfkkyzlceixzrehqhvxvxbpwizzvjzpucqmzrhzxzfau'; set @s1 = 'ykyymbzqgqlcjhlhmyqelfoaaohvtbekvifukdtnvcrrjveevfakxarxexomz'; set @s2 = 'dbnfqyzgtqxalcrwtfsqabknvtfcbpoonxsjiqvmhnfikxxhcgoexlkoezvah'; --enable_query_log insert into t1 values ( 0, repeat(@s2,454), 100, repeat(@s2,345), NULL); insert into t1 values ( 1, repeat(@s0,504), NULL, repeat(@s1,732), repeat(@s1,1)); insert into t1 values ( 2, '', 102, '', repeat(@s2,1)); insert into t1 values ( 3, repeat(@s0,545), 103, repeat(@s2,788), repeat(@s0,1)); insert into t1 values ( 4, repeat(@s1,38), 104, repeat(@s0,260), repeat(@s0,1)); insert into t1 values ( 5, repeat(@s2,12), 105, repeat(@s2,40), repeat(@s1,1)); insert into t1 values ( 6, repeat(@s1,242), 106, NULL, repeat(@s1,1)); insert into t1 values ( 7, repeat(@s1,30), 107, repeat(@s0,161), ''); insert into t1 values ( 8, repeat(@s1,719), 108, repeat(@s2,104), NULL); insert into t1 values ( 9, repeat(@s2,427), NULL, NULL, NULL); select 'M', a, sha1(b), c, sha1(d), sha1(e) from t1 order by a; --sync_slave_with_master --sleep 5 --connection slave select 'S', a, sha1(b), c, sha1(d), sha1(e) from t1 order by a; --connection master drop table t1; --sync_slave_with_master # table with varsize key (future cluster/schema) # sql/ha_ndbcluster_binlog.cc --connection master CREATE TABLE IF NOT EXISTS t1 ( db VARBINARY(63) NOT NULL, name VARBINARY(63) NOT NULL, slock BINARY(32) NOT NULL, query BLOB NOT NULL, node_id INT UNSIGNED NOT NULL, epoch BIGINT UNSIGNED NOT NULL, id INT UNSIGNED NOT NULL, version INT UNSIGNED NOT NULL, type INT UNSIGNED NOT NULL, PRIMARY KEY USING HASH (db,name)) ENGINE=NDB; insert into t1 values ('test','t1', 'abc',repeat(@s0,10), 11,12,13,14,15); insert into t1 values ('test','t2', 'def',repeat(@s1,100), 21,22,23,24,25); insert into t1 values ('test','t3', 'ghi',repeat(@s2,1000),31,32,33,34,35); insert into t1 values ('testtttttttttt','t1', 'abc',repeat(@s0,10), 11,12,13,14,15); insert into t1 values ('testttttttttttt','t1', 'def',repeat(@s1,100), 21,22,23,24,25); insert into t1 values ('testtttttttttttt','t1', 'ghi',repeat(@s2,1000),31,32,33,34,35); insert into t1 values ('t','t11111111111', 'abc',repeat(@s0,10), 11,12,13,14,15); insert into t1 values ('t','t111111111111', 'def',repeat(@s1,100), 21,22,23,24,25); insert into t1 values ('t','t1111111111111', 'ghi',repeat(@s2,1000),31,32,33,34,35); select 'M', db, name, sha1(query), node_id, epoch, id, version, type from t1 order by db, name; --sync_slave_with_master --sleep 5 --connection slave select 'S', db, name, sha1(query), node_id, epoch, id, version, type from t1 order by db, name; --connection master drop table t1; --sync_slave_with_master # # view the binlog - not deterministic (mats) # #--connection master #let $VERSION=`select version()`; #--replace_result $VERSION VERSION #show binlog events; --source include/rpl_end.inc