config root man

Current Path : /home/usr.opt/mysql57/mysql-test/suite/ndb_binlog/t/

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_binlog/t/ndb_binlog_log_reads.test

########################################################
# Test logging of read in different binlog variants
# produced by Ndb
#
#  1) Updates logged as write_row events
#     Only primary key and updated columns included in the 
#     event
#  2) Updates logged as write_row_events
#     All columns included in the event
#  3) Updates logged as update_row events
#     Only primary key and updated columns included in the
#     event
#  4) Updates logged as update_row events
#     All columns included in the event
#
#
########################################################
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/have_debug.inc

# Setup connections
connect(mysqld1,127.0.0.1,root,,test,$MASTER_MYPORT);
connect(mysqld2,127.0.0.1,root,,test,$MASTER_MYPORT1);
connect(mysqld3,127.0.0.1,root,,test,$MASTER_MYPORT2);
connect(mysqld4,127.0.0.1,root,,test,$MASTER_MYPORT3);

connection mysqld1;

#
# WL#7642 Ndb Active Active Binlog read tracking
#

create table test.t1 (
  a int primary key,
  b varchar(2000),
  c int not null unique,
  d int,
  key(d)) engine=ndb;

insert into test.t1 values
 (1, "Initial data 1", 1, 1),
 (2, "Initial data 2", 2, 2),
 (3, "Initial data 3", 3, 3),
 (4, "Initial data 4", 4, 4),
 (5, "Initial data 5", 5, 5),
 (6, "Initial data 6", 6, 6),
 (7, "Initial data 7", 7, 7),
 (8, "Initial data 8", 8, 8),
 (9, "Initial data 9", 9, 9),
 (10, "Initial data 10", 10, 10);

-- echo Test 1: Testing logging of pk reads

reset master;

create table test.synch(x int primary key) engine=ndb;

connection mysqld2;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;
connection mysqld3;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;
connection mysqld4;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;

connection mysqld1;
SET ndb_log_exclusive_reads= 1;
select * from test.t1 where a = 7 order by a for update;

--disable_query_log
--disable_result_log
insert into test.synch values (1);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a WRITE_ROW since ndb-log-update-as-write=1"
select "mysqld1:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";
drop table raw_binlog_rows;
--enable_query_log

connection mysqld2;
--disable_query_log
--disable_result_log
insert into test.synch values (2);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a WRITE_ROW since ndb-log-update-as-write=1"
select "mysqld2:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld3;
--disable_query_log
--disable_result_log
insert into test.synch values (3);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a UPDATE_ROW since ndb-log-update-as-write=0"
select "mysqld3:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld4;
--disable_query_log
--disable_result_log
insert into test.synch values (4);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a UPDATE_ROW since ndb-log-update-as-write=0"
select "mysqld4:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld1;
SET ndb_log_exclusive_reads= 0;

-- echo Test 2: Testing logging of unique index reads

reset master;

connection mysqld1;
--disable_result_log
delete from test.synch;
--enable_result_log
connection mysqld2;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;
connection mysqld3;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;
connection mysqld4;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;

connection mysqld1;
SET ndb_log_exclusive_reads= 1;
select * from test.t1 where c = 7 order by a for update;

--disable_query_log
--disable_result_log
insert into test.synch values (1);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a WRITE_ROW since ndb-log-update-as-write=1"
select "mysqld1:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";
drop table raw_binlog_rows;
--enable_query_log

connection mysqld2;
--disable_query_log
--disable_result_log
insert into test.synch values (2);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a WRITE_ROW since ndb-log-update-as-write=1"
select "mysqld2:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld3;
--disable_query_log
--disable_result_log
insert into test.synch values (3);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a UPDATE_ROW since ndb-log-update-as-write=0"
select "mysqld3:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld4;
--disable_query_log
--disable_result_log
insert into test.synch values (4);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a UPDATE_ROW since ndb-log-update-as-write=0"
select "mysqld4:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld1;
SET ndb_log_exclusive_reads= 0;

-- echo Test 3: Testing logging of ordered index scans

reset master;

connection mysqld1;
--disable_result_log
delete from test.synch;
--enable_result_log
connection mysqld2;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;
connection mysqld3;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;
connection mysqld4;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;

connection mysqld1;
SET ndb_log_exclusive_reads= 1;
select * from test.t1 where d = 7 order by a for update;

--disable_query_log
--disable_result_log
insert into test.synch values (1);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a WRITE_ROW since ndb-log-update-as-write=1"
select "mysqld1:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";
drop table raw_binlog_rows;
--enable_query_log

connection mysqld2;
--disable_query_log
--disable_result_log
insert into test.synch values (2);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a WRITE_ROW since ndb-log-update-as-write=1"
select "mysqld2:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld3;
--disable_query_log
--disable_result_log
insert into test.synch values (3);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a UPDATE_ROW since ndb-log-update-as-write=0"
select "mysqld3:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld4;
--disable_query_log
--disable_result_log
insert into test.synch values (4);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a UPDATE_ROW since ndb-log-update-as-write=0"
select "mysqld4:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld1;
SET ndb_log_exclusive_reads= 0;

-- echo Test 4: Testing logging of table scans

reset master;

connection mysqld1;
--disable_result_log
delete from test.synch;
--enable_result_log
connection mysqld2;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;
connection mysqld3;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;
connection mysqld4;
--disable_result_log
show create table test.synch;
--enable_result_log
reset master;

connection mysqld1;
SET ndb_log_exclusive_reads= 1;
select * from test.t1 where b like "Initial data 7" order by a for update;

--disable_query_log
--disable_result_log
insert into test.synch values (1);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a WRITE_ROW since ndb-log-update-as-write=1"
select "mysqld1:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";
drop table raw_binlog_rows;
--enable_query_log

connection mysqld2;
--disable_query_log
--disable_result_log
insert into test.synch values (2);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a WRITE_ROW since ndb-log-update-as-write=1"
select "mysqld2:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld3;
--disable_query_log
--disable_result_log
insert into test.synch values (3);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a UPDATE_ROW since ndb-log-update-as-write=0"
select "mysqld3:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld4;
--disable_query_log
--disable_result_log
insert into test.synch values (4);
--enable_result_log
--enable_query_log

# Wait for epoch boundary
--disable_query_log
--disable_result_log
show binlog events;
--enable_result_log
--enable_query_log

--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--exec $MYSQL_BINLOG --verbose $MYSQLD_DATADIR/mysqld-bin.000001 > $MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql

create table raw_binlog_rows (txt varchar(1000));

--eval load data local infile '$MYSQLTEST_VARDIR/tmp/ndb_binlog_mysqlbinlog.sql' into table raw_binlog_rows columns terminated by '\n';

--echo "Check that the binlog contains the AnyValue bit set in extra row data for a UPDATE_ROW since ndb-log-update-as-write=0"
select "mysqld4:",txt from raw_binlog_rows where txt like "### % `test`.`t1`" or txt like "### Extra row data %";

drop table raw_binlog_rows;
--enable_query_log

connection mysqld1;
SET ndb_log_exclusive_reads= 0;
drop table test.synch, test.t1;

Man Man