Current Path : /home/usr.opt/mysql57/mysql-test/suite/rpl/r/ |
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 |
Current File : //home/usr.opt/mysql57/mysql-test/suite/rpl/r/rpl_mix_found_rows.result |
include/master-slave.inc Warnings: Note #### Sending passwords in plain text without SSL/TLS is extremely insecure. Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information. [connection master] ==== Initialize ==== **** On Master **** CREATE TABLE t1 (a INT); CREATE TABLE logtbl (sect INT, test INT, count INT); INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t1 SELECT 2*a+3 FROM t1; INSERT INTO t1 SELECT 2*a+3 FROM t1; INSERT INTO t1 SELECT 2*a+3 FROM t1; INSERT INTO t1 SELECT 2*a+3 FROM t1; INSERT INTO t1 SELECT 2*a+3 FROM t1; INSERT INTO t1 SELECT 2*a+3 FROM t1; ==== Checking a procedure ==== **** On Master **** CREATE PROCEDURE just_log(sect INT, test INT) BEGIN INSERT INTO logtbl VALUES (sect,test,FOUND_ROWS()); END $$ include/sync_slave_sql_with_master.inc **** On Master 1 **** SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1; a 7 CALL just_log(1,1); **** On Master **** SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1; a 7 CALL just_log(1,2); **** On Master 1 **** SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a < 5 ORDER BY a LIMIT 1; a 1 CALL just_log(1,3); include/sync_slave_sql_with_master.inc **** On Master **** SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1; a 7 CALL just_log(1,4); include/sync_slave_sql_with_master.inc SELECT * FROM logtbl WHERE sect = 1 ORDER BY sect,test; sect test count 1 1 183 1 2 183 1 3 3 1 4 183 **** On Slave **** include/sync_slave_sql_with_master.inc SELECT * FROM logtbl WHERE sect = 1 ORDER BY sect,test; sect test count 1 1 183 1 2 183 1 3 3 1 4 183 ==== Checking a stored function ==== **** On Master **** CREATE FUNCTION log_rows(sect INT, test INT) RETURNS INT BEGIN DECLARE found_rows INT; SELECT FOUND_ROWS() INTO found_rows; INSERT INTO logtbl VALUES(sect,test,found_rows); RETURN found_rows; END $$ SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a < 5 ORDER BY a LIMIT 1; a 1 SELECT log_rows(2,1), log_rows(2,2); log_rows(2,1) log_rows(2,2) 3 3 CREATE TABLE t2 (a INT, b INT); CREATE TRIGGER t2_tr BEFORE INSERT ON t2 FOR EACH ROW BEGIN INSERT INTO logtbl VALUES (NEW.a, NEW.b, FOUND_ROWS()); END $$ SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a < 5 ORDER BY a LIMIT 1; a 1 INSERT INTO t2 VALUES (2,3), (2,4); DROP TRIGGER t2_tr; CREATE TRIGGER t2_tr BEFORE INSERT ON t2 FOR EACH ROW BEGIN DECLARE dummy INT; SELECT log_rows(NEW.a, NEW.b) INTO dummy; END $$ SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1; a 7 INSERT INTO t2 VALUES (2,5), (2,6); DROP TRIGGER t2_tr; CREATE PROCEDURE log_me_inner(sect INT, test INT) BEGIN DECLARE dummy INT; SELECT log_rows(sect, test) INTO dummy; SELECT log_rows(sect, test+1) INTO dummy; END $$ CREATE PROCEDURE log_me(sect INT, test INT) BEGIN CALL log_me_inner(sect,test); END $$ CREATE TRIGGER t2_tr BEFORE INSERT ON t2 FOR EACH ROW BEGIN CALL log_me(NEW.a, NEW.b); END $$ SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a > 5 ORDER BY a LIMIT 1; a 7 INSERT INTO t2 VALUES (2,5), (2,6); SELECT * FROM logtbl WHERE sect = 2 ORDER BY sect,test; sect test count 2 1 3 2 2 3 2 3 3 2 4 3 2 5 183 2 5 183 2 6 183 2 6 0 2 6 183 2 7 0 include/sync_slave_sql_with_master.inc SELECT * FROM logtbl WHERE sect = 2 ORDER BY sect,test; sect test count 2 1 3 2 2 3 2 3 3 2 4 3 2 5 183 2 5 183 2 6 183 2 6 0 2 6 183 2 7 0 DROP TABLE t1, t2, logtbl; DROP PROCEDURE just_log; DROP PROCEDURE log_me; DROP PROCEDURE log_me_inner; DROP FUNCTION log_rows; include/sync_slave_sql_with_master.inc include/rpl_end.inc