1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Bug#28356 Exec'ing "diff" from "mysqltest" loses the output, no information available

- Use SQL for diffing master and slave


mysql-test/r/rpl_misc_functions.result:
  Dump t1 on slave and load it back into temporary table on master
  to allow comapre with SQL
mysql-test/t/rpl_misc_functions.test:
  Dump t1 on slave and load it back into temporary table on master
  to allow comapre with SQL
This commit is contained in:
unknown
2007-06-29 10:26:20 +02:00
parent 61c423a2bd
commit 0870afe37d
2 changed files with 38 additions and 20 deletions

View File

@ -77,27 +77,37 @@ INSERT INTO t1 VALUES (test_replication_sf());
INSERT INTO t1 VALUES (test_replication_sf());
INSERT INTO t1 VALUES (test_replication_sf());
# Record the results of the query on the master
--exec $MYSQL --port=$MASTER_MYPORT test -e "SELECT * FROM test.t1" > $MYSQLTEST_VARDIR/tmp/rpl_rand_master.sql
--sync_slave_with_master
# Record the results of the query on the slave
--exec $MYSQL --port=$SLAVE_MYPORT test -e "SELECT * FROM test.t1" > $MYSQLTEST_VARDIR/tmp/rpl_rand_slave.sql
# Dump table on slave
select * from t1 into outfile "../tmp/t1_slave.txt";
# Compare the results from the master to the slave.
--exec diff $MYSQLTEST_VARDIR/tmp/rpl_rand_master.sql $MYSQLTEST_VARDIR/tmp/rpl_rand_slave.sql
# Load data from slave into temp table on master
connection master;
create temporary table t1_slave select * from t1 where 1=0;
load data infile '../tmp/t1_slave.txt' into table t1_slave;
--remove_file $MYSQLTEST_VARDIR/tmp/t1_slave.txt
# Compare master and slave temp table, use subtraction
# for floating point comparison of "double"
select count(*) into @aux from t1, t1_slave
where ABS(t1.col_a - t1_slave.col_a) < 0.0001 ;
SELECT @aux;
if (`SELECT @aux <> 12 OR @aux IS NULL`)
{
--echo # ERROR: We expected to get count(*) = 12.
SELECT col_a FROM t1;
SELECT col_a FROM t1_slave;
--echo # abort
exit;
}
# Cleanup
connection master;
--disable_warnings
DROP PROCEDURE IF EXISTS test_replication_sp1;
DROP PROCEDURE IF EXISTS test_replication_sp2;
DROP FUNCTION IF EXISTS test_replication_sf;
DROP TABLE IF EXISTS t1;
--enable_warnings
DROP PROCEDURE test_replication_sp1;
DROP PROCEDURE test_replication_sp2;
DROP FUNCTION test_replication_sf;
DROP TABLE t1, t1_slave;
--sync_slave_with_master
# If all is good, when can cleanup our dump files.
--system rm $MYSQLTEST_VARDIR/tmp/rpl_rand_master.sql
--system rm $MYSQLTEST_VARDIR/tmp/rpl_rand_slave.sql