diff options
author | unknown <lars/lthalmann@mysql.com/dl145k.mysql.com> | 2007-02-27 20:57:46 +0100 |
---|---|---|
committer | unknown <lars/lthalmann@mysql.com/dl145k.mysql.com> | 2007-02-27 20:57:46 +0100 |
commit | 71b762bf69c2b0709d597df0537ae409d5020adf (patch) | |
tree | 8d3555c7f5cdec28f1ca0c9de107ef05f6ba66ec | |
parent | 7443227bcaec6f42621422cd594d3f1ca550b8b5 (diff) | |
download | mariadb-git-71b762bf69c2b0709d597df0537ae409d5020adf.tar.gz |
Fix of incorrect merge of test case
-rw-r--r-- | mysql-test/r/rpl_user_variables.result | 110 | ||||
-rw-r--r-- | mysql-test/t/rpl_user_variables.test | 303 |
2 files changed, 2 insertions, 411 deletions
diff --git a/mysql-test/r/rpl_user_variables.result b/mysql-test/r/rpl_user_variables.result index 88b65fb0d3a..3b6002a5d2d 100644 --- a/mysql-test/r/rpl_user_variables.result +++ b/mysql-test/r/rpl_user_variables.result @@ -241,116 +241,6 @@ SELECT f1(), f2(); f1() f2() 123 0 On master: Check to see that data was inserted correctly -CREATE FUNCTION test.square() RETURNS INTEGER DETERMINISTIC RETURN (@var * @var); -SET @var = 1; -INSERT INTO t1 VALUES (square()); -SET @var = 2; -INSERT INTO t1 VALUES (square()); -SET @var = 3; -INSERT INTO t1 VALUES (square()); -SET @var = 4; -INSERT INTO t1 VALUES (square()); -SET @var = 5; -INSERT INTO t1 VALUES (square()); -On master: Retrieve the values from the table -SELECT * FROM t1; -i -1 -4 -9 -16 -25 -On slave: Retrieve the values from the table and verify they are the same as on master -SELECT * FROM t1; -i -1 -4 -9 -16 -25 -DROP TABLE t1; -DROP FUNCTION test.square; -DROP TABLE IF EXISTS t1; -DROP FUNCTION IF EXISTS f1; -DROP FUNCTION IF EXISTS f2; -CREATE TABLE t1(a int); -CREATE FUNCTION f1() returns int deterministic -BEGIN -return @a; -END | -CREATE FUNCTION f2() returns int deterministic -BEGIN -IF (@b > 0) then -SET @c = (@a + @b); -else -SET @c = (@a - 1); -END if; -return @c; -END | -SET @a=500; -INSERT INTO t1 values(f1()); -SET @b = 125; -SET @c = 1; -INSERT INTO t1 values(f2()); -On master: Retrieve the values from the table -SELECT * from t1; -a -500 -625 -On slave: Check the tables for correct data and it matches master -SELECT * from t1; -a -500 -625 -DROP TABLE t1; -DROP FUNCTION f1; -DROP FUNCTION f2; -DROP TABLE IF EXISTS t1; -DROP TABLE IF EXISTS t2; -CREATE TABLE t1 (i int); -CREATE TABLE t2 (k int); -CREATE trigger t1_bi before INSERT on t1 for each row -BEGIN -INSERT INTO t2 values (@a); -SET @a:=42; -INSERT INTO t2 values (@a); -END | -SET @a:=100; -INSERT INTO t1 values (5); -On master: Check to see that data was inserted correctly in both tables -SELECT * from t1; -i -5 -SELECT * from t2; -k -100 -42 -On slave: Check the tables for correct data and it matches master -SELECT * from t1; -i -5 -SELECT * from t2; -k -100 -42 -End of 5.0 tests. -DROP TABLE t1; -DROP TABLE t2; -DROP TABLE IF EXISTS t1; -DROP FUNCTION IF EXISTS f1; -DROP FUNCTION IF EXISTS f2; -CREATE TABLE t1 (i INT); -CREATE FUNCTION f1() RETURNS INT RETURN @a; -CREATE FUNCTION f2() RETURNS INT -BEGIN -INSERT INTO t1 VALUES (10 + @a); -RETURN 0; -END| -SET @a:=123; -SELECT f1(), f2(); -f1() f2() -123 0 -On master: Check to see that data was inserted correctly INSERT INTO t1 VALUES(f1()); SELECT * FROM t1; i diff --git a/mysql-test/t/rpl_user_variables.test b/mysql-test/t/rpl_user_variables.test index b3a361261b5..226591bd13f 100644 --- a/mysql-test/t/rpl_user_variables.test +++ b/mysql-test/t/rpl_user_variables.test @@ -291,6 +291,8 @@ SELECT * from t2; connection master; +--echo End of 5.0 tests. + # Cleanup DROP TABLE t1; @@ -347,307 +349,6 @@ DROP FUNCTION f1; DROP FUNCTION f2; DROP TABLE t1; -save_master_pos; -connection slave; -sync_with_master; - -# BUG#20141 -# The following tests ensure that if user-defined variables are used in SF/Triggers -# that they are replicated correctly. These tests should be run in both SBR and RBR -# modes. - -# This test uses a procedure that inserts data values based on the value of a -# user-defined variable. It also has a trigger that inserts data based on the -# same variable. Successful test runs show that the @var is replicated -# properly and that the procedure and trigger insert the correct data on the -# slave. -# -# The test of stored procedure was included for completeness. Replication of stored -# procedures was not directly affected by BUG#20141. -# -# This test was constructed for BUG#20141 - ---disable_warnings -DROP TABLE IF EXISTS t20; -DROP TABLE IF EXISTS t21; -DROP PROCEDURE IF EXISTS test.insert; ---enable_warnings - -CREATE TABLE t20 (a VARCHAR(20)); -CREATE TABLE t21 (a VARCHAR(20)); -DELIMITER |; - -# Create a procedure that uses the @var for flow control - -CREATE PROCEDURE test.insert() -BEGIN - IF (@VAR) - THEN - INSERT INTO test.t20 VALUES ('SP_TRUE'); - ELSE - INSERT INTO test.t20 VALUES ('SP_FALSE'); - END IF; -END| - -# Create a trigger that uses the @var for flow control - -CREATE TRIGGER test.insert_bi BEFORE INSERT - ON test.t20 FOR EACH ROW - BEGIN - IF (@VAR) - THEN - INSERT INTO test.t21 VALUES ('TRIG_TRUE'); - ELSE - INSERT INTO test.t21 VALUES ('TRIG_FALSE'); - END IF; - END| -DELIMITER ;| - -sync_slave_with_master; -connection master; - -# Set @var and call the procedure, repeat with different values - -SET @VAR=0; -CALL test.insert(); -SET @VAR=1; -CALL test.insert(); - ---echo On master: Check the tables for correct data - -SELECT * FROM t20; -SELECT * FROM t21; - -sync_slave_with_master; - ---echo On slave: Check the tables for correct data and it matches master - -SELECT * FROM t20; -SELECT * FROM t21; -connection master; - -# Cleanup - -DROP TABLE t20; -DROP TABLE t21; -DROP PROCEDURE test.insert; - -# This test uses a stored function that uses user-defined variables to return data -# This test was constructed for BUG#20141 - ---disable_warnings -DROP TABLE IF EXISTS t1; -DROP FUNCTION IF EXISTS test.square; ---enable_warnings - -CREATE TABLE t1 (i INT); - -# Create function that returns a value from @var. In this case, the square function - -CREATE FUNCTION test.square() RETURNS INTEGER DETERMINISTIC RETURN (@var * @var); - -sync_slave_with_master; -connection master; - -# Set the @var to different values and insert them into a table - -SET @var = 1; -INSERT INTO t1 VALUES (square()); -SET @var = 2; -INSERT INTO t1 VALUES (square()); -SET @var = 3; -INSERT INTO t1 VALUES (square()); -SET @var = 4; -INSERT INTO t1 VALUES (square()); -SET @var = 5; -INSERT INTO t1 VALUES (square()); - ---echo On master: Retrieve the values from the table - -SELECT * FROM t1; - -sync_slave_with_master; - ---echo On slave: Retrieve the values from the table and verify they are the same as on master - -SELECT * FROM t1; - -connection master; - -# Cleanup - -DROP TABLE t1; -DROP FUNCTION test.square; - -# This test uses stored functions that uses user-defined variables to return data -# based on the use of @vars inside a function body. -# This test was constructed for BUG#14914 - ---disable_warnings -DROP TABLE IF EXISTS t1; -DROP FUNCTION IF EXISTS f1; -DROP FUNCTION IF EXISTS f2; ---enable_warnings - -CREATE TABLE t1(a int); -DELIMITER |; - -# Create a function that simply returns the value of an @var. -# Create a function that uses an @var for flow control, creates and uses another -# @var and sets its value to a value based on another @var. - -CREATE FUNCTION f1() returns int deterministic -BEGIN - return @a; -END | - -CREATE FUNCTION f2() returns int deterministic -BEGIN - IF (@b > 0) then - SET @c = (@a + @b); - else - SET @c = (@a - 1); - END if; - return @c; -END | -DELIMITER ;| - -sync_slave_with_master; -connection master; - -# Set an @var to a value and insert data into a table using the first function. -# Set two more @vars to some values and insert data into a table using the second function. - -SET @a=500; -INSERT INTO t1 values(f1()); -SET @b = 125; -SET @c = 1; -INSERT INTO t1 values(f2()); - -sync_slave_with_master; - ---echo On master: Retrieve the values from the table - -SELECT * from t1; - ---echo On slave: Check the tables for correct data and it matches master - -SELECT * from t1; - -connection master; - -# Cleanup - -DROP TABLE t1; -DROP FUNCTION f1; -DROP FUNCTION f2; - -# This test uses a function that changes a user-defined variable in its body. This test -# will ensure the @vars are replicated when needed and not interrupt the normal execution -# of the function on the slave. This also applies to triggers. -# -# This test was constructed for BUG#25167 - ---disable_warnings -DROP TABLE IF EXISTS t1; -DROP TABLE IF EXISTS t2; ---enable_warnings -CREATE TABLE t1 (i int); -CREATE TABLE t2 (k int); -DELIMITER |; - -# Create a trigger that inserts data into another table, changes the @var then inserts -# another row with the modified value. - -CREATE trigger t1_bi before INSERT on t1 for each row -BEGIN - INSERT INTO t2 values (@a); - SET @a:=42; - INSERT INTO t2 values (@a); -END | -DELIMITER ;| - -sync_slave_with_master; -connection master; - -# Set the @var to a value then insert data into first table. - -SET @a:=100; -INSERT INTO t1 values (5); - ---echo On master: Check to see that data was inserted correctly in both tables - -SELECT * from t1; -SELECT * from t2; - -sync_slave_with_master; - ---echo On slave: Check the tables for correct data and it matches master - -SELECT * from t1; -SELECT * from t2; - -connection master; - ---echo End of 5.0 tests. - -# Cleanup - -DROP TABLE t1; -DROP TABLE t2; - -# This test uses a stored function that uses user-defined variables to return data -# The test ensures the value of the user-defined variable is replicated correctly -# and in the correct order of assignment. -# This test was constructed for BUG#20141 - ---disable_warnings -DROP TABLE IF EXISTS t1; -DROP FUNCTION IF EXISTS f1; -DROP FUNCTION IF EXISTS f2; ---enable_warnings - -CREATE TABLE t1 (i INT); - -# Create two functions. One simply returns the user-defined variable. The other -# returns a value based on the user-defined variable. - -CREATE FUNCTION f1() RETURNS INT RETURN @a; -DELIMITER |; -CREATE FUNCTION f2() RETURNS INT -BEGIN - INSERT INTO t1 VALUES (10 + @a); - RETURN 0; -END| -DELIMITER ;| - -sync_slave_with_master; -connection master; - -# Set the variable and execute the functions. - -SET @a:=123; -SELECT f1(), f2(); - ---echo On master: Check to see that data was inserted correctly - -INSERT INTO t1 VALUES(f1()); -SELECT * FROM t1; - -sync_slave_with_master; - ---echo On slave: Check the table for correct data and it matches master - -SELECT * FROM t1; - -connection master; - -# Cleanup - -DROP FUNCTION f1; -DROP FUNCTION f2; -DROP TABLE t1; - sync_slave_with_master; stop slave; |