Browse Source
Bug#24289 Status Variable "Questions" gets wrong values with Stored Routines(for 5.1)
pull/47/merge
Bug#24289 Status Variable "Questions" gets wrong values with Stored Routines(for 5.1)
pull/47/merge
7 changed files with 174 additions and 12 deletions
-
2mysql-test/r/myisampack.result
-
73mysql-test/r/status2.result
-
2mysql-test/t/myisampack.test
-
68mysql-test/t/status2.test
-
8sql/mysqld.cc
-
11sql/sql_class.h
-
22sql/sql_parse.cc
@ -0,0 +1,73 @@ |
|||||
|
# |
||||
|
# Bug#24289 Status Variable "Questions" gets wrong values with Stored Routines |
||||
|
# |
||||
|
FLUSH STATUS; |
||||
|
CREATE FUNCTION testQuestion() RETURNS INTEGER |
||||
|
BEGIN |
||||
|
DECLARE foo INTEGER; |
||||
|
DECLARE bar INTEGER; |
||||
|
SET foo=1; |
||||
|
SET bar=2; |
||||
|
RETURN foo; |
||||
|
END $$ |
||||
|
CREATE PROCEDURE testQuestion2() |
||||
|
BEGIN |
||||
|
SELECT 1; |
||||
|
END $$ |
||||
|
DROP TABLE IF EXISTS t1,t2; |
||||
|
CREATE TABLE t1 (c1 INT); |
||||
|
CREATE TABLE t2 (c1 INT); |
||||
|
CREATE EVENT ev1 ON SCHEDULE EVERY 1 SECOND |
||||
|
DO INSERT INTO t1 VALUES(1); |
||||
|
Assert Questions == 7 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
Variable_name Value |
||||
|
Questions 7 |
||||
|
SELECT testQuestion(); |
||||
|
testQuestion() |
||||
|
1 |
||||
|
Assert Questions == 9 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
Variable_name Value |
||||
|
Questions 9 |
||||
|
CALL testQuestion2(); |
||||
|
1 |
||||
|
1 |
||||
|
Assert Questions == 11 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
Variable_name Value |
||||
|
Questions 11 |
||||
|
SELECT 1; |
||||
|
1 |
||||
|
1 |
||||
|
Assert Questions == 13 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
Variable_name Value |
||||
|
Questions 13 |
||||
|
SELECT 1; |
||||
|
1 |
||||
|
1 |
||||
|
Assert Questions == 14 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
Variable_name Value |
||||
|
Questions 14 |
||||
|
CREATE TRIGGER trigg1 AFTER INSERT ON t1 |
||||
|
FOR EACH ROW BEGIN |
||||
|
INSERT INTO t2 VALUES (1); |
||||
|
END; |
||||
|
$$ |
||||
|
Assert Questions == 16 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
Variable_name Value |
||||
|
Questions 16 |
||||
|
INSERT INTO t1 VALUES (1); |
||||
|
Assert Questions == 18 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
Variable_name Value |
||||
|
Questions 18 |
||||
|
DROP PROCEDURE testQuestion2; |
||||
|
DROP TRIGGER trigg1; |
||||
|
DROP FUNCTION testQuestion; |
||||
|
DROP EVENT ev1; |
||||
|
DROP TABLE t1,t2; |
||||
|
End of 6.0 tests |
||||
@ -0,0 +1,68 @@ |
|||||
|
--source include/not_embedded.inc |
||||
|
|
||||
|
--echo # |
||||
|
--echo # Bug#24289 Status Variable "Questions" gets wrong values with Stored Routines |
||||
|
--echo # |
||||
|
FLUSH STATUS; |
||||
|
DELIMITER $$; |
||||
|
CREATE FUNCTION testQuestion() RETURNS INTEGER |
||||
|
BEGIN |
||||
|
DECLARE foo INTEGER; |
||||
|
DECLARE bar INTEGER; |
||||
|
SET foo=1; |
||||
|
SET bar=2; |
||||
|
RETURN foo; |
||||
|
END $$ |
||||
|
CREATE PROCEDURE testQuestion2() |
||||
|
BEGIN |
||||
|
SELECT 1; |
||||
|
END $$ |
||||
|
DELIMITER ;$$ |
||||
|
--disable_warnings |
||||
|
DROP TABLE IF EXISTS t1,t2; |
||||
|
--enable_warnings |
||||
|
CREATE TABLE t1 (c1 INT); |
||||
|
CREATE TABLE t2 (c1 INT); |
||||
|
CREATE EVENT ev1 ON SCHEDULE EVERY 1 SECOND |
||||
|
DO INSERT INTO t1 VALUES(1); |
||||
|
|
||||
|
--echo Assert Questions == 7 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
SELECT testQuestion(); |
||||
|
--echo Assert Questions == 9 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
CALL testQuestion2(); |
||||
|
--echo Assert Questions == 11 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
SELECT 1; |
||||
|
--echo Assert Questions == 13 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
connect (con1,localhost,root,,); |
||||
|
connection con1; |
||||
|
SELECT 1; |
||||
|
connection default; |
||||
|
disconnect con1; |
||||
|
--echo Assert Questions == 14 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
DELIMITER $$; |
||||
|
CREATE TRIGGER trigg1 AFTER INSERT ON t1 |
||||
|
FOR EACH ROW BEGIN |
||||
|
INSERT INTO t2 VALUES (1); |
||||
|
END; |
||||
|
$$ |
||||
|
DELIMITER ;$$ |
||||
|
--echo Assert Questions == 16 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
INSERT INTO t1 VALUES (1); |
||||
|
--echo Assert Questions == 18 |
||||
|
SHOW STATUS LIKE 'Questions'; |
||||
|
# TODO: Uncomment the lines below when FLUSH GLOBAL STATUS is implemented. |
||||
|
# FLUSH STATUS; |
||||
|
# SHOW GLOBAL STATUS LIKE 'Questions'; |
||||
|
DROP PROCEDURE testQuestion2; |
||||
|
DROP TRIGGER trigg1; |
||||
|
DROP FUNCTION testQuestion; |
||||
|
DROP EVENT ev1; |
||||
|
DROP TABLE t1,t2; |
||||
|
--echo End of 6.0 tests |
||||
|
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue