After merge fix.

parent 5f6244c8
...@@ -337,6 +337,7 @@ DROP TABLE t1, t2; ...@@ -337,6 +337,7 @@ DROP TABLE t1, t2;
DROP PROCEDURE IF EXISTS p1; DROP PROCEDURE IF EXISTS p1;
DROP FUNCTION IF EXISTS f1; DROP FUNCTION IF EXISTS f1;
DROP FUNCTION IF EXISTS f2; DROP FUNCTION IF EXISTS f2;
DROP FUNCTION IF EXISTS f3;
DROP TABLE IF EXISTS t1, t2; DROP TABLE IF EXISTS t1, t2;
--enable_warnings --enable_warnings
...@@ -366,6 +367,12 @@ END | ...@@ -366,6 +367,12 @@ END |
CREATE FUNCTION f2() RETURNS INT NOT DETERMINISTIC CREATE FUNCTION f2() RETURNS INT NOT DETERMINISTIC
RETURN LAST_INSERT_ID() | RETURN LAST_INSERT_ID() |
CREATE FUNCTION f3() RETURNS INT MODIFIES SQL DATA
BEGIN
INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
RETURN 0;
END |
delimiter ;| delimiter ;|
INSERT INTO t1 VALUES (NULL, -1); INSERT INTO t1 VALUES (NULL, -1);
...@@ -380,6 +387,15 @@ INSERT INTO t1 VALUES (NULL, LAST_INSERT_ID()), (NULL, LAST_INSERT_ID(5)), ...@@ -380,6 +387,15 @@ INSERT INTO t1 VALUES (NULL, LAST_INSERT_ID()), (NULL, LAST_INSERT_ID(5)),
INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID()); INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID());
UPDATE t1 SET j= -1 WHERE i IS NULL; UPDATE t1 SET j= -1 WHERE i IS NULL;
# Test statement-based replication of function calls.
INSERT INTO t1 (i) VALUES (NULL);
connection master1;
INSERT INTO t1 (i) VALUES (NULL);
connection master;
SELECT f3();
SELECT * FROM t1; SELECT * FROM t1;
SELECT * FROM t2; SELECT * FROM t2;
...@@ -391,6 +407,7 @@ connection master; ...@@ -391,6 +407,7 @@ connection master;
DROP PROCEDURE p1; DROP PROCEDURE p1;
DROP FUNCTION f1; DROP FUNCTION f1;
DROP FUNCTION f2; DROP FUNCTION f2;
DROP FUNCTION f3;
DROP TABLE t1, t2; DROP TABLE t1, t2;
......
...@@ -637,7 +637,7 @@ bool THD::store_globals() ...@@ -637,7 +637,7 @@ bool THD::store_globals()
THD::cleanup_after_query() THD::cleanup_after_query()
DESCRIPTION DESCRIPTION
This function is used to reset thread data to it's default state. This function is used to reset thread data to its default state.
NOTE NOTE
This function is not suitable for setting thread data to some This function is not suitable for setting thread data to some
...@@ -645,6 +645,7 @@ bool THD::store_globals() ...@@ -645,6 +645,7 @@ bool THD::store_globals()
different master threads may overwrite data of each other on different master threads may overwrite data of each other on
slave. slave.
*/ */
void THD::cleanup_after_query() void THD::cleanup_after_query()
{ {
if (!in_sub_stmt) /* stored functions and triggers are a special case */ if (!in_sub_stmt) /* stored functions and triggers are a special case */
...@@ -668,6 +669,7 @@ void THD::cleanup_after_query() ...@@ -668,6 +669,7 @@ void THD::cleanup_after_query()
where= THD::DEFAULT_WHERE; where= THD::DEFAULT_WHERE;
} }
/* /*
Convert a string to another character set Convert a string to another character set
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment