############################################################################# # Original Author: JBM # # Original Date: Aug/18/2005 # ############################################################################# # TEST: To test the UUID() in rbr # ############################################################################# # Begin clean up test section connection master; --disable_warnings DROP PROCEDURE IF EXISTS test.p1; DROP TABLE IF EXISTS test.t1; --enable_warnings # Section 1 test eval CREATE TABLE test.t1 (a INT, blob_column LONGBLOB, vchar_column VARCHAR(100), PRIMARY KEY(a)) engine=$engine_type; INSERT INTO test.t1 VALUES(1,UUID(),UUID()); delimiter |; create procedure test.p1() begin INSERT INTO test.t1 VALUES(2,UUID(),UUID()); INSERT INTO test.t1 VALUES(3,UUID(),UUID()); end| delimiter ;| CALL test.p1(); # Now the same thing with a function delimiter |; create function test.fn1(x int) returns int begin insert into t1 values (4+x,UUID(),UUID()); insert into t1 values (5+x,UUID(),UUID()); return 0; end| delimiter ;| # test both in SELECT and in INSERT --disable_ps2_protocol select fn1(0); --enable_ps2_protocol eval create table t2 (a int) engine=$engine_type; insert into t2 values(fn1(2)); sync_slave_with_master; SHOW CREATE TABLE test.t1; # Dump the databases and so we can see if they match # Another method would be to use SELECT INTO OUTFILE on master, # then LOAD DATA INFILE in slave, and use a query to compare. # This would have the advantage that it would not assume # the system has a 'diff' --exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_row_UUID_master.sql --exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_row_UUID_slave.sql connection master; # Let's cleanup DROP PROCEDURE test.p1; DROP FUNCTION test.fn1; DROP TABLE test.t1; DROP TABLE test.t2; # Let's compare. Note: If they match test will pass, if they do not match # the test will show that the diff statement failed and not reject file # will be created. You will need to go to the mysql-test dir and diff # the files your self to see what is not matching :-) diff_files $MYSQLTEST_VARDIR/tmp/rpl_row_UUID_master.sql $MYSQLTEST_VARDIR/tmp/rpl_row_UUID_slave.sql; # Cleanup dump files. # Long-term "system rm" is not portable; we could live without # this cleanup as no other test will use these files and they'll # be removed at next testsuite run.