--source include/have_ndb.inc
--source include/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
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;
