config root man

Current Path : /home/usr.opt/mysql57/mysql-test/suite/ndb_rpl/r/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //home/usr.opt/mysql57/mysql-test/suite/ndb_rpl/r/ndb_rpl_conflict_basic.result

include/master-slave.inc
Warnings:
Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
[connection master]
insert into mysql.ndb_replication values ("test", "t1_old", 0, 7, "NDB$OLD(X)");
insert into mysql.ndb_replication values ("test", "t1_max", 0, 7, "NDB$MAX(X)");
insert into mysql.ndb_replication values ("test", "t1_max_delete_win", 0, 7, "NDB$MAX_DELETE_WIN(X)");
create table `t1_old$EX`
  (server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
a int not null,
primary key(server_id, master_server_id, master_epoch, count)) engine ndb;
create table `t1_max$EX`
  (server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
a int not null,
primary key(server_id, master_server_id, master_epoch, count)) engine ndb;
create table `t1_max_delete_win$EX`
  (server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
a int not null,
primary key(server_id, master_server_id, master_epoch, count)) engine ndb;
create table t1_old (a int primary key, b varchar(32), X int unsigned) engine = ndb;
create table t1_max (a int primary key, b varchar(32), X int unsigned) engine = ndb;
create table t1_max_delete_win (a int primary key, b varchar(32), X int unsigned) engine = ndb;
"Test 1"
insert into t1_old values (1, 'Initial X=1', 1);
insert into t1_max values (1, 'Initial X=1', 1);
insert into t1_max_delete_win values (1, 'Initial X=1', 1);
update t1_old set X = 2, b='Slave X=2';
update t1_max set X = 2, b='Slave X=2';
update t1_max_delete_win set X = 2, b='Slave X=2';
update t1_old set X = 3, b='Master X=3';
update t1_max set X = 3, b='Master X=3';
update t1_max_delete_win set X = 3, b='Master X=3';
"Expect t1_old to contain slave row, and t1_max* to contain master row"
select * from t1_old;
a	b	X
1	Slave X=2	2
select * from t1_max;
a	b	X
1	Master X=3	3
select * from t1_max_delete_win;
a	b	X
1	Master X=3	3
update t1_old set X = 3, b='Master X=3';
"Test 2"
update t1_old set X = 4, b='Slave X=4';
update t1_max set X = 4, b='Slave X=4';
update t1_max_delete_win set X = 4, b='Slave X=4';
delete from t1_old;
delete from t1_max;
delete from t1_max_delete_win;
"Expect t1_old and t1_max to contain slave row, and t1_max_delete_win to be empty(as master)"
select * from t1_old;
a	b	X
1	Slave X=4	4
select * from t1_max;
a	b	X
1	Slave X=4	4
select * from t1_max_delete_win;
a	b	X
delete from t1_old;
delete from t1_max;
drop table t1_old, t1_max, t1_max_delete_win;
delete from t1_old$EX;
delete from t1_max$EX;
delete from t1_max_delete_win$EX;
delete from t1_old$EX;
delete from t1_max$EX;
delete from t1_max_delete_win$EX;
create table t1_old (a int primary key, b longtext, X int unsigned) engine = ndb;
create table t1_max (a int primary key, b longtext, X int unsigned) engine = ndb;
create table t1_max_delete_win (a int primary key, b longtext, X int unsigned) engine = ndb;
"Test 3"
insert into t1_old values (1, repeat('Initial X=1',1000), 1);
insert into t1_max values (1, repeat('Initial X=1',1000), 1);
insert into t1_max_delete_win values (1, repeat('Initial X=1',1000), 1);
update t1_old set X = 2, b=repeat('Slave X=2',1001);
update t1_max set X = 2, b=repeat('Slave X=2',1001);
update t1_max_delete_win set X = 2, b=repeat('Slave X=2',1001);
update t1_old set X = 3, b=repeat('Master X=3',1002);
update t1_max set X = 3, b=repeat('Master X=3',1002);
update t1_max_delete_win set X = 3, b=repeat('Master X=3',1002);
"Expect t1_old to contain slave row, and t1_max* to contain master row"
select a, left(b, 20), length(b), X from t1_old;
a	left(b, 20)	length(b)	X
1	Slave X=2Slave X=2Sl	9009	2
select a, left(b, 20), length(b), X from t1_max;
a	left(b, 20)	length(b)	X
1	Master X=3Master X=3	10020	3
select a, left(b, 20), length(b), X from t1_max_delete_win;
a	left(b, 20)	length(b)	X
1	Master X=3Master X=3	10020	3
Expect t1_old to have 1 entry, and t1_max* to have no entries
select server_id, master_server_id, count, a from t1_old$EX order by count;
server_id	master_server_id	count	a
2	1	1	1
select server_id, master_server_id, count, a from t1_max$EX order by count;
server_id	master_server_id	count	a
select server_id, master_server_id, count, a from t1_max_delete_win$EX order by count;
server_id	master_server_id	count	a
delete from t1_max$EX;
delete from t1_max_delete_win$EX;
delete from t1_old$EX;
update t1_old set X = 3, b=repeat('Master X=3', 1002);
"Test 4"
update t1_old set X = 4, b=repeat('Slave X=4',2000);
update t1_max set X = 4, b=repeat('Slave X=4',2000);
update t1_max_delete_win set X = 4, b=repeat('Slave X=4',2000);
delete from t1_old;
delete from t1_max;
delete from t1_max_delete_win;
"Expect t1_old and t1_max to contain slave row, and t1_max_delete_win to be empty(as master)"
select a, left(b, 20), length(b), X from t1_old;
a	left(b, 20)	length(b)	X
1	Slave X=4Slave X=4Sl	18000	4
select a, left(b, 20), length(b), X from t1_max;
a	left(b, 20)	length(b)	X
1	Slave X=4Slave X=4Sl	18000	4
select a, left(b, 20), length(b), X from t1_max_delete_win;
a	left(b, 20)	length(b)	X
Expect t1_old and t1_max to contain 1 entry, and t1_max_delete_win to be empty
select server_id, master_server_id, count, a from t1_old$EX order by count;
server_id	master_server_id	count	a
2	1	2	1
select server_id, master_server_id, count, a from t1_max$EX order by count;
server_id	master_server_id	count	a
2	1	1	1
select server_id, master_server_id, count, a from t1_max_delete_win$EX order by count;
server_id	master_server_id	count	a
delete from t1_max$EX;
delete from t1_max_delete_win$EX;
delete from t1_old$EX;
delete from t1_old;
delete from t1_max;
delete from t1_max_delete_win;
delete from t1_old;
delete from t1_max;
delete from t1_max_delete_win;
"Test 5"
Test that Updates affecting Blobs are rejected
correctly on the slave
drop table t1_max;
create table t1_max (a int primary key, b int, c longtext, d longtext, X int unsigned) engine = ndb;
insert into t1_max values (1, 1, repeat("B", 10000), repeat("E", 10001), 1);
insert into t1_max values (2, 2, repeat("A", 10002), repeat("T", 10003), 1);
update t1_max set X=20;
Initial values on Slave
select a,b,SHA1(c),length(c), SHA1(d), length(d), X from t1_max order by a;
a	b	SHA1(c)	length(c)	SHA1(d)	length(d)	X
1	1	4a222e18b539cdefbf0960eaa7f4362a4976e1e0	10000	9641d473ab1bd921263190eee074397084933e2d	10001	20
2	2	f833241322c062495632923d74314a6a5c23034d	10002	2dad269dfa115f6c7e53e91a73251e597aab8fe9	10003	20
Originate update which will be rejected
update t1_max set c=repeat("Z", 10006), d=repeat("I", 10005), X=2 where a=1;
Check slave has rejected due to lower version
select a,b,SHA1(c),length(c), SHA1(d), length(d), X from t1_max order by a;
a	b	SHA1(c)	length(c)	SHA1(d)	length(d)	X
1	1	4a222e18b539cdefbf0960eaa7f4362a4976e1e0	10000	9641d473ab1bd921263190eee074397084933e2d	10001	20
2	2	f833241322c062495632923d74314a6a5c23034d	10002	2dad269dfa115f6c7e53e91a73251e597aab8fe9	10003	20
Originate delete which will be rejected (due to NDB-OLD) algorith
delete from t1_max where a=1;
Check slave has rejected due to before image mismatch
select a,b,SHA1(c),length(c), SHA1(d), length(d), X from t1_max order by a;
a	b	SHA1(c)	length(c)	SHA1(d)	length(d)	X
1	1	4a222e18b539cdefbf0960eaa7f4362a4976e1e0	10000	9641d473ab1bd921263190eee074397084933e2d	10001	20
2	2	f833241322c062495632923d74314a6a5c23034d	10002	2dad269dfa115f6c7e53e91a73251e597aab8fe9	10003	20
Originate insert which will be rejected (as row exists)
insert into t1_max values (1, 1, repeat("R", 10004), repeat("A", 10007), 1);
Check slave has rejected due to row existing already
select a,b,SHA1(c),length(c), SHA1(d), length(d), X from t1_max order by a;
a	b	SHA1(c)	length(c)	SHA1(d)	length(d)	X
1	1	4a222e18b539cdefbf0960eaa7f4362a4976e1e0	10000	9641d473ab1bd921263190eee074397084933e2d	10001	20
2	2	f833241322c062495632923d74314a6a5c23034d	10002	2dad269dfa115f6c7e53e91a73251e597aab8fe9	10003	20
Expect t1_max to have 3 entries
select server_id, master_server_id, count, a from t1_old$EX order by count;
server_id	master_server_id	count	a
select server_id, master_server_id, count, a from t1_max$EX order by count;
server_id	master_server_id	count	a
2	1	1	1
2	1	2	1
2	1	3	1
select server_id, master_server_id, count, a from t1_max_delete_win$EX order by count;
server_id	master_server_id	count	a
delete from t1_max$EX;
delete from t1_max_delete_win$EX;
delete from t1_old$EX;
Test 6
Check that non-Blob related operations in a batch with a Blob
operation are still subject to conflict detection.

insert into mysql.ndb_replication values ("test", "t2_max", 0, 7, "NDB$MAX(X)");
create table `t2_max$EX`
  (server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
a int not null,
primary key(server_id, master_server_id, master_epoch, count)) engine ndb;
create table t2_max (a int primary key, b int, X bigint unsigned) engine=ndb;
insert into t2_max values (1,1,10), (2,2,10), (3,3,10), (4,4,10), (5,5,10);
Now issue a transaction with a successful Blob op, and unsuccessful
non-Blob op.  Check that the Blob op succeeds, and the unsuccessful
non-Blob op is handled as expected.
begin;
update t2_max set b=b+1, X=1 where a=3;
update t1_max set c=repeat("R", 10008), d=repeat("A", 10009), X = 21 where a=1;
commit;
Contents on Slave
Expect Blob data applied to t1_max, no update applied to t2_max
select a,b,left(c,1), length(c), left(d,1), length(d), X from t1_max where a=1;
a	b	left(c,1)	length(c)	left(d,1)	length(d)	X
1	1	R	10008	A	10009	21
select * from t2_max order by a;
a	b	X
1	1	10
2	2	10
3	3	10
4	4	10
5	5	10
Expect No conflict in t1_max, 1 conflict in t2_max
select server_id, master_server_id, count, a from t1_max$EX order by count;
server_id	master_server_id	count	a
select server_id, master_server_id, count, a from t2_max$EX order by count;
server_id	master_server_id	count	a
2	1	1	3
drop table t2_max, t2_max$EX;
drop table t1_old, `t1_old$EX`, t1_max, `t1_max$EX`, t1_max_delete_win, `t1_max_delete_win$EX`;
delete from mysql.ndb_replication;
Test that online table distribution sets up conflict functions and exceptions tables
insert into mysql.ndb_replication values ("test", "t1allsame", 0, 7, "NDB$MAX(X)");
insert into mysql.ndb_replication values ("test", "t2diffex", 1, 7, "NDB$OLD(X)");
insert into mysql.ndb_replication values ("test", "t2diffex", 3, 7, "NDB$MAX(X)");
insert into mysql.ndb_replication values ("test", "t3oneex", 3, 7, "NDB$EPOCH()");
create table t2diffex$EX (
server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
a int not null,
primary key(server_id, master_server_id, master_epoch, count)) engine ndb;
create table t3oneex$EX (
server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
a int not null,
primary key(server_id, master_server_id, master_epoch, count)) engine ndb;
create table t1allsame(a int primary key, b varchar(200), X int unsigned) engine=ndb;
create table t2diffex(a int primary key, b varchar(200), X int unsigned) engine=ndb;
create table t3oneex(a int primary key, b varchar(200)) engine=ndb;
show variables like 'server_id';
Variable_name	Value
server_id	1
MySQLD error output for server 1.1 matching pattern %NDB Slave%
relevant
[note] ndb slave: table test.t2diffex using conflict_fn ndb$old on attribute x.
[note] ndb slave: table test.t2diffex logging exceptions to test.t2diffex$ex
[note] ndb slave: table test.t1allsame using conflict_fn ndb$max on attribute x.
[note] ndb slave: table test.t2_max using conflict_fn ndb$max on attribute x.
show variables like 'server_id';
Variable_name	Value
server_id	3
MySQLD error output for server 2.1 matching pattern %NDB Slave%
relevant
[warning] ndb slave: table test.t3oneex : no extra row author bits in table.
[note] ndb slave: table test.t3oneex : ndb$epoch, low epoch resolution
[note] ndb slave: table test.t2diffex using conflict_fn ndb$max on attribute x.
[note] ndb slave: table test.t2diffex logging exceptions to test.t2diffex$ex
[note] ndb slave: table test.t1allsame using conflict_fn ndb$max on attribute x.
[note] ndb slave: table test.t2_max using conflict_fn ndb$max on attribute x.
drop table t3oneex, t2diffex, t1allsame, t3oneex$EX, t2diffex$EX;
delete from mysql.ndb_replication;
Test exceptions table schema flexibility
insert into mysql.ndb_replication values ("test", "t1", 0, 7, "NDB$MAX(X)");
Test 'normal' mandatory column names + all table pks
create table test.t1$EX(
server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
a int not null,
b int not null,
c int not null,
primary key (server_id, master_server_id, master_epoch, count)) engine=ndb;
create table test.t1 (a int, b int, c int, d int, e int, X int unsigned,
primary key(a,b,c)) engine=ndb;
Generate a conflict on the slave
insert into test.t1 values (1,1,1,1,1,1);
update test.t1 set X=0 where a=1 and b=1 and c=1;
Check that conflict has been recorded.
select * from test.t1$EX;
server_id	master_server_id	master_epoch	count	a	b	c
2	1	<epoch_num>	1	1	1	1
drop table test.t1;
drop table test.t1$EX;
Test 'normal' mandatory column names + all table pks +
extra columns with same and different names to main table columns
Also a defaulted extra column.
create table test.t1$EX(
server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
a int not null,
b int not null,
c int not null,
d int,                     # Same name as main table, but user defined
lilljeholmen varchar(50) default 'Slussen',
# Separate, user defined
primary key (server_id, master_server_id, master_epoch, count)) engine=ndb;
create table test.t1 (a int, b int, c int, d int, e int, X int unsigned,
primary key(a,b,c)) engine=ndb;
Generate a conflict on the slave
insert into test.t1 values (1,1,1,1,1,1);
update test.t1 set X=0 where a=1 and b=1 and c=1;
Check that conflict has been recorded.
select * from test.t1$EX;
server_id	master_server_id	master_epoch	count	a	b	c	d	lilljeholmen
2	1	<epoch_num>	1	1	1	1	NULL	Slussen
drop table test.t1;
drop table test.t1$EX;
Test unusual mandatory column names + all table pks +
extra columns with same and different names to main table columns
Also a defaulted extra column.
create table test.t1$EX(
monteverdi int unsigned,
asparagi int unsigned,
plenipotentiary bigint unsigned,
mountebank int unsigned,
a int not null,
b int not null,
c int not null,
d int,                     # Same name as main table, but user defined
lilljeholmen varchar(50) default 'Slussen',
# Separate, user defined
primary key (monteverdi, asparagi, plenipotentiary, mountebank)) engine=ndb;
create table test.t1 (a int, b int, c int, d int, e int, X int unsigned,
primary key(a,b,c)) engine=ndb;
Generate a conflict on the slave
insert into test.t1 values (1,1,1,1,1,1);
update test.t1 set X=0 where a=1 and b=1 and c=1;
Check that conflict has been recorded.
select * from test.t1$EX;
monteverdi	asparagi	plenipotentiary	mountebank	a	b	c	d	lilljeholmen
2	1	<epoch_num>	1	1	1	1	NULL	Slussen
drop table test.t1;
drop table test.t1$EX;
Test unusual mandatory column names + all table pks which are same
as 'normal' exceptions table column names plus extra columns with
same and different names to main table columns
Also a defaulted extra column.
create table test.t1$EX(
monteverdi int unsigned,
asparagi int unsigned,
plenipotentiary bigint unsigned,
mountebank int unsigned,
server_id int unsigned not null,
master_server_id int unsigned not null,
master_epoch bigint unsigned not null,
count int unsigned not null,
d int,                     # Same name as main table, but user defined
lilljeholmen varchar(50) default 'Slussen',
# Separate, user defined
primary key (monteverdi, asparagi, plenipotentiary, mountebank)) engine=ndb;
create table test.t1 (server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
d int, e int, X int unsigned,
primary key(server_id, master_server_id,
master_epoch, count)) engine=ndb;
Generate a conflict on the slave
insert into test.t1 values (1,1,1,1,1,1,1);
update test.t1 set X=0 where server_id=1 and master_server_id=1 and master_epoch=1 and count=1;
Check that conflict has been recorded.
select * from test.t1$EX;
monteverdi	asparagi	plenipotentiary	mountebank	server_id	master_server_id	master_epoch	count	d	lilljeholmen
2	1	<epoch_num>	1	1	1	1	1	NULL	Slussen
drop table test.t1;
drop table test.t1$EX;
call mtr.add_suppression("NDB Slave: exceptions table .* has wrong definition .*");
call mtr.add_suppression("NDB Slave: exceptions table .* has wrong definition .*");
call mtr.add_suppression("NDB Slave: exceptions table .* has wrong definition .*");
And some bad exceptions table schemata
Keys in wrong positions
create table test.t1$EX(
a int not null,
b int not null,
c int not null,
d int,                     # Same name as main table, but user defined
lilljeholmen varchar(50) default 'Slussen',
# Separate, user defined
server_id int unsigned,
master_server_id int unsigned,
master_epoch bigint unsigned,
count int unsigned,
primary key (server_id, master_server_id, master_epoch, count)) engine=ndb;
create table test.t1 (a int, b int, c int, d int, e int, X int unsigned,
primary key(a,b,c)) engine=ndb;
show warnings;
Level	Code	Message
MySQLD error output for server 1.1 matching pattern %NDB Slave%
relevant
[note] ndb slave: table test.t1 using conflict_fn ndb$max on attribute x.
[warning] ndb slave: exceptions table t1$ex has wrong definition (initial 4 columns)
drop table test.t1;
drop table test.t1$EX;
Test conflict_fn definitions in ndb_replication which cover  
exceptions tables and verify that conflict functions are not
set up for exceptions tables. 
insert into mysql.ndb_replication values ("test", "t2%", 1, 7, "NDB$EPOCH()");
create table test.t2$EX (
server_id int unsigned NOT NULL,
master_server_id int unsigned NOT NULL,
master_epoch bigint unsigned NOT NULL,
count int unsigned NOT NULL,
a int NOT NULL,
PRIMARY KEY (server_id,master_server_id,master_epoch,count)
) ENGINE=ndbcluster;
create table test.t2 (
a int primary key,
b varchar(100)) engine=ndb;
count(*)
1
count(*)
1
drop table test.server_error_log;
drop table test.t2;
drop table test.t2$EX;
"Cleanup"
drop table mysql.ndb_replication;
include/rpl_end.inc

Man Man