mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Move mysql-test-run/extra/rpl_tests to suite/rpl/include
Renamed suite/rpl/include/rpl_sync.inc to rpl_sync_test.inc to remove clash with include/rpl_sync.inc
This commit is contained in:
81
mysql-test/suite/rpl/include/rpl_row_func003.test
Normal file
81
mysql-test/suite/rpl/include/rpl_row_func003.test
Normal file
@@ -0,0 +1,81 @@
|
||||
#############################################################################
|
||||
# Original Author: JBM #
|
||||
# Original Date: Aug/15/2005 #
|
||||
# Update: 08/29/2005 Comment out sleep. Only needed for debugging #
|
||||
#############################################################################
|
||||
# Note: Time changes and is not deteministic, so instead we dump both the #
|
||||
# master and slave and diff the dumps. If the dumps differ then the #
|
||||
# test case will fail. To run during diff failuers, comment out the #
|
||||
# diff. #
|
||||
# Test: Tests MySQL stored function using RAND() and a flow control. The #
|
||||
# test inserts rows into a givin table with the function used in #
|
||||
# the insert statement. Depending on the RAND() value returned #
|
||||
# inside the function one set of text is returned. In addition, #
|
||||
# it uses a transaction to see the effect a rollback has on master #
|
||||
# Vs slave. #
|
||||
#############################################################################
|
||||
|
||||
CALL mtr.add_suppression('Statement may not be safe to log in statement format.');
|
||||
|
||||
# Begin clean up test section
|
||||
connection master;
|
||||
--disable_warnings
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
DROP TABLE IF EXISTS test.t1;
|
||||
|
||||
--enable_warnings
|
||||
|
||||
eval CREATE TABLE test.t1 (a INT NOT NULL AUTO_INCREMENT, c CHAR(16),PRIMARY KEY(a))ENGINE=$engine_type;
|
||||
|
||||
delimiter |;
|
||||
create function test.f1() RETURNS CHAR(16)
|
||||
BEGIN
|
||||
DECLARE tmp CHAR(16);
|
||||
DECLARE var_name FLOAT;
|
||||
SET var_name = RAND();
|
||||
IF var_name > .6
|
||||
THEN SET tmp = 'Texas';
|
||||
ELSE SET tmp = 'MySQL';
|
||||
END IF;
|
||||
RETURN tmp;
|
||||
END|
|
||||
delimiter ;|
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO test.t1 VALUES (null,test.f1()),(null,test.f1()),(null,test.f1());
|
||||
INSERT INTO test.t1 VALUES (null,test.f1()),(null,test.f1()),(null,test.f1());
|
||||
--enable_warnings
|
||||
|
||||
SET AUTOCOMMIT=0;
|
||||
START TRANSACTION;
|
||||
--disable_warnings
|
||||
INSERT INTO test.t1 VALUES (null,test.f1());
|
||||
--enable_warnings
|
||||
ROLLBACK;
|
||||
SET AUTOCOMMIT=1;
|
||||
|
||||
sync_slave_with_master;
|
||||
connection master;
|
||||
|
||||
# Time to dump the databases and so we can see if they match
|
||||
|
||||
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/func003_master.sql
|
||||
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/func003_slave.sql
|
||||
|
||||
# First lets cleanup
|
||||
DROP FUNCTION test.f1;
|
||||
DROP TABLE test.t1;
|
||||
|
||||
|
||||
# the test will show that the diff statement failed and no reject file
|
||||
# will be created. You will need to go to the mysql-test dir and diff
|
||||
# the files yourself to see what is not matching :-) File are located
|
||||
# in $MYSQLTEST_VARDIR/tmp
|
||||
|
||||
diff_files $MYSQLTEST_VARDIR/tmp/func003_master.sql $MYSQLTEST_VARDIR/tmp/func003_slave.sql;
|
||||
|
||||
# Clean up
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/func003_master.sql;
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/func003_slave.sql;
|
||||
|
||||
# End of 5.0 test case
|
Reference in New Issue
Block a user