summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2008-12-29 16:15:48 +0400
committerSergey Glukhov <Sergey.Glukhov@sun.com>2008-12-29 16:15:48 +0400
commit51b78382cdff7576747149acae51f8ff9034b208 (patch)
tree4abe304bbc2dd38477bd016437783452c8d4f8b8
parent5ac577497744a97f68715cdb372950c9e954677f (diff)
parentf67ce4761768a3ea05f8c4c11704fd5cd2065d3a (diff)
downloadmariadb-git-51b78382cdff7576747149acae51f8ff9034b208.tar.gz
5.0-bugteam->5.1-bugteam merge
-rw-r--r--mysql-test/r/status.result25
-rw-r--r--mysql-test/t/status.test39
-rw-r--r--sql/mysqld.cc9
3 files changed, 73 insertions, 0 deletions
diff --git a/mysql-test/r/status.result b/mysql-test/r/status.result
index 1e758ce68c7..78537052127 100644
--- a/mysql-test/r/status.result
+++ b/mysql-test/r/status.result
@@ -209,4 +209,29 @@ ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table '
drop database db37908;
drop procedure proc37908;
drop function func37908;
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+CREATE FUNCTION f1() RETURNS INTEGER
+BEGIN
+DECLARE foo INTEGER;
+DECLARE bar INTEGER;
+SET foo=1;
+SET bar=2;
+RETURN foo;
+END $$
+CREATE PROCEDURE p1()
+BEGIN
+SELECT 1;
+END $$
+SELECT f1();
+f1()
+1
+CALL p1();
+1
+1
+SELECT 9;
+9
+9
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
set @@global.concurrent_insert= @old_concurrent_insert;
diff --git a/mysql-test/t/status.test b/mysql-test/t/status.test
index bc241423417..5f20bf9eceb 100644
--- a/mysql-test/t/status.test
+++ b/mysql-test/t/status.test
@@ -238,6 +238,8 @@ let $tmp_table2 = `show global status like 'Created_tmp_tables'`;
--disable_query_log
eval select substring_index('$rnd_next2',0x9,-1)-substring_index('$rnd_next',0x9,-1) as rnd_diff, substring_index('$tmp_table2',0x9,-1)-substring_index('$tmp_table',0x9,-1) as tmp_table_diff;
--enable_query_log
+disconnect con1;
+connection default;
#
# Bug#30252 Com_create_function is not incremented.
@@ -291,6 +293,43 @@ connection root;
drop database db37908;
drop procedure proc37908;
drop function func37908;
+
+#
+# Bug#41131 "Questions" fails to increment - ignores statements instead stored procs
+#
+connect (con1,localhost,root,,);
+connection con1;
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+DELIMITER $$;
+CREATE FUNCTION f1() RETURNS INTEGER
+BEGIN
+ DECLARE foo INTEGER;
+ DECLARE bar INTEGER;
+ SET foo=1;
+ SET bar=2;
+ RETURN foo;
+END $$
+CREATE PROCEDURE p1()
+ BEGIN
+ SELECT 1;
+END $$
+DELIMITER ;$$
+let $org_queries= `SHOW STATUS LIKE 'Queries'`;
+SELECT f1();
+CALL p1();
+let $new_queries= `SHOW STATUS LIKE 'Queries'`;
+--disable_log
+let $diff= `SELECT SUBSTRING('$new_queries',9)-SUBSTRING('$org_queries',9)`;
+--enable_log
+eval SELECT $diff;
+disconnect con1;
+connection default;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+
# End of 5.1 tests
# Restore global concurrent_insert value. Keep in the end of the test file.
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index b2505a99a0d..b7f9457da3d 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -6910,6 +6910,14 @@ The minimum value for this variable is 4096.",
};
+static int show_queries(THD *thd, SHOW_VAR *var, char *buff)
+{
+ var->type= SHOW_LONGLONG;
+ var->value= (char *)&thd->query_id;
+ return 0;
+}
+
+
static int show_net_compression(THD *thd, SHOW_VAR *var, char *buff)
{
var->type= SHOW_MY_BOOL;
@@ -7325,6 +7333,7 @@ SHOW_VAR status_vars[]= {
{"Qcache_queries_in_cache", (char*) &query_cache.queries_in_cache, SHOW_LONG_NOFLUSH},
{"Qcache_total_blocks", (char*) &query_cache.total_blocks, SHOW_LONG_NOFLUSH},
#endif /*HAVE_QUERY_CACHE*/
+ {"Queries", (char*) &show_queries, SHOW_FUNC},
{"Questions", (char*) offsetof(STATUS_VAR, questions), SHOW_LONG_STATUS},
#ifdef HAVE_REPLICATION
{"Rpl_status", (char*) &show_rpl_status, SHOW_FUNC},