1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-31 22:22:30 +03:00

Bug#24289 Status Variable "Questions" gets wrong values with Stored Routines(for 5.1)

This commit is contained in:
Sergey Glukhov
2008-12-17 17:23:21 +04:00
parent d566770bf5
commit aae00014e2
7 changed files with 174 additions and 12 deletions

View File

@@ -28,7 +28,7 @@ Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
drop table if exists t1;
create table t1(f1 int, f2 varchar(255));
create table t1(f1 int, f2 char(255));
insert into t1 values(1, 'foo'), (2, 'bar');
insert into t1 select * from t1;
insert into t1 select * from t1;

View File

@@ -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

View File

@@ -38,7 +38,7 @@ DROP TABLE t1;
--disable_warnings
drop table if exists t1;
--enable_warnings
create table t1(f1 int, f2 varchar(255));
create table t1(f1 int, f2 char(255));
insert into t1 values(1, 'foo'), (2, 'bar');
insert into t1 select * from t1;
insert into t1 select * from t1;

68
mysql-test/t/status2.test Normal file
View File

@@ -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