Server IP : 104.21.38.3 / Your IP : 162.158.162.44 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/mysql-test/suite/rpl/t/ |
Upload File : |
############################################################################# # This test is being created to test out the non deterministic items with # # row based replication. # # Original Author: JBM # # Original Date: Aug/09/2005 # # Updated: Aug/29/2005 ############################################################################# # Test: Includes two stored procedure tests. First test uses SP to insert # # values from RAND() and NOW() into a table. # # The second test uses SP with CASE structure to decide what to text # # to update a given table with. # ############################################################################ # Includes -- source include/have_binlog_format_row.inc -- source include/master-slave.inc -- disable_query_log -- disable_result_log # Begin clean up test section connection master; --disable_warnings DROP PROCEDURE IF EXISTS test.p1; DROP PROCEDURE IF EXISTS test.p2; DROP TABLE IF EXISTS test.t1; DROP TABLE IF EXISTS test.t2; -- enable_query_log -- enable_result_log # Begin test section 1 for non deterministic SP let $message=<Begin test section 1 (non deterministic SP)>; --source include/show_msg.inc create table test.t1 (n MEDIUMINT NOT NULL AUTO_INCREMENT, f FLOAT, d DATETIME, PRIMARY KEY(n)); delimiter //; create procedure test.p1() begin INSERT INTO test.t1 (f,d) VALUES (RAND(),NOW()); end// delimiter ;// # show binlog events; -- disable_query_log -- disable_result_log SET @wait_count=1; let $1=10; while ($1) { call test.p1(); let $wait_condition= SELECT COUNT(*) = @wait_count FROM test.t1; -- source include/wait_condition_or_abort.inc -- disable_query_log SET @wait_count = @wait_count + 1; dec $1; } -- enable_result_log -- enable_query_log ## Used for debugging #show binlog events; #select * from test.t1; #--source include/sync_slave_sql_with_master.inc #select * from test.t1; #connection master; let $message=<End test section 1 (non deterministic SP)>; --source include/show_msg.inc CREATE TABLE test.t2 (a INT NOT NULL AUTO_INCREMENT, t CHAR(4), PRIMARY KEY(a)); delimiter //; CREATE PROCEDURE test.p2(n int) begin CASE n WHEN 1 THEN UPDATE test.t2 set t ='Tex'; WHEN 2 THEN UPDATE test.t2 set t ='SQL'; ELSE UPDATE test.t2 set t ='NONE'; END CASE; end// delimiter ;// INSERT INTO test.t2 VALUES(NULL,'NEW'),(NULL,'NEW'),(NULL,'NEW'),(NULL,'NEW'); SELECT * FROM t2 ORDER BY a; --source include/sync_slave_sql_with_master.inc SELECT * FROM t2 ORDER BY a; connection master; call test.p2(1); SELECT * FROM t2 ORDER BY a; --source include/sync_slave_sql_with_master.inc SELECT * FROM t2 ORDER BY a; connection master; call test.p2(2); SELECT * FROM t2 ORDER BY a; --source include/sync_slave_sql_with_master.inc SELECT * FROM t2 ORDER BY a; connection master; call test.p2(3); SELECT * FROM t2 ORDER BY a; --source include/sync_slave_sql_with_master.inc SELECT * FROM t2 ORDER BY a; ##Used for debugging #show binlog events; # 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/sp001_master.sql --exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/sp001_slave.sql # First lets cleanup connection master; DROP PROCEDURE test.p1; DROP PROCEDURE test.p2; DROP TABLE test.t1; DROP TABLE test.t2; --source include/sync_slave_sql_with_master.inc # Lets 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 :-) Failed dump files # will be located in $MYSQLTEST_VARDIR/tmp diff_files $MYSQLTEST_VARDIR/tmp/sp001_master.sql $MYSQLTEST_VARDIR/tmp/sp001_slave.sql; # If all is good, when can cleanup our dump files. --remove_file $MYSQLTEST_VARDIR/tmp/sp001_master.sql --remove_file $MYSQLTEST_VARDIR/tmp/sp001_slave.sql # End of 5.0 test case --source include/rpl_end.inc