summaryrefslogtreecommitdiff
path: root/mysql-test/t/events_logs_tests.test
diff options
context:
space:
mode:
authorunknown <andrey@lmy004.>2006-03-01 16:27:57 +0100
committerunknown <andrey@lmy004.>2006-03-01 16:27:57 +0100
commit265df624ccfdaefb777f40acac4ed8488529b27f (patch)
treed070d147f614121e3aed89837a2e01877e412b0e /mysql-test/t/events_logs_tests.test
parenteab8bb65fbd503ad8dbbbffb63a43a8208365e39 (diff)
downloadmariadb-git-265df624ccfdaefb777f40acac4ed8488529b27f.tar.gz
fix for bug #16413 (Events: statements don't appear in the general query log)
WL#1034 mysql-test/t/events_logs_tests-master.opt: Rename: mysql-test/t/events_slow_query-master.opt -> mysql-test/t/events_logs_tests-master.opt sql/event_timed.cc: ask the anonymous SP to log general statements sql/sp_head.cc: save the OPTION_LOG_OFF and restore it after execution sql/sp_head.h: add a new flag for general log mysql-test/r/events_logs_tests.result: update result file mysql-test/t/events_logs_tests.test: add test for general log
Diffstat (limited to 'mysql-test/t/events_logs_tests.test')
-rw-r--r--mysql-test/t/events_logs_tests.test79
1 files changed, 79 insertions, 0 deletions
diff --git a/mysql-test/t/events_logs_tests.test b/mysql-test/t/events_logs_tests.test
new file mode 100644
index 00000000000..6b733fa989f
--- /dev/null
+++ b/mysql-test/t/events_logs_tests.test
@@ -0,0 +1,79 @@
+create database if not exists events_test;
+use events_test;
+
+--echo "Check General Query Log"
+SET GLOBAL event_scheduler=0;
+create event log_general on schedule every 1 minute do seLect 'alabala', sleep(3) from dual;
+TRUNCATE mysql.general_log;
+SELECT user_host, command_type, argument FROM mysql.general_log;
+SET GLOBAL event_scheduler=1;
+--echo "Wait the scheduler to start"
+--echo "Should see 3 rows. The create, the seLect and the select from the general_log"
+--sleep 2
+SELECT user_host, command_type, argument FROM mysql.general_log;
+DROP EVENT log_general;
+SET GLOBAL event_scheduler=0;
+--sleep 1
+
+--echo "Check slow query log"
+--disable_query_log
+DELIMITER |;
+CREATE FUNCTION get_value()
+ returns INT
+ deterministic
+BEGIN
+ DECLARE var_name CHAR(255);
+ DECLARE var_val INT;
+ DECLARE done INT DEFAULT 0;
+ DECLARE cur1 CURSOR FOR SHOW GLOBAL VARIABLES LIKE 'long_query_time';
+ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
+ OPEN cur1;
+ FETCH cur1 INTO var_name, var_val;
+ CLOSE cur1;
+ RETURN var_val;
+end|
+DELIMITER ;|
+--enable_query_log
+--echo "Save the values"
+SET @old_global_long_query_time:=(select get_value());
+SET @old_session_long_query_time:=@@long_query_time;
+SHOW VARIABLES LIKE 'log_slow_queries';
+DROP FUNCTION get_value;
+TRUNCATE mysql.slow_log;
+SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
+--echo "Set new values"
+SET GLOBAL long_query_time=4;
+SET SESSION long_query_time=2;
+--echo "Check that logging is working"
+SELECT SLEEP(3);
+SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
+TRUNCATE mysql.slow_log;
+CREATE TABLE slow_event_test (slo_val tinyint, val tinyint);
+--echo "This won't go to the slow log"
+CREATE EVENT long_event ON SCHEDULE EVERY 1 MINUTE DO INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(3);
+SELECT * FROM slow_event_test;
+SET GLOBAL event_scheduler=1;
+--echo "Sleep some more time than the actual event run will take"
+--sleep 5
+SHOW VARIABLES LIKE 'event_scheduler';
+--echo "Check our table. Should see 1 row"
+SELECT * FROM slow_event_test;
+--echo "Check slow log. Should not see anything because 3 is under the threshold of 4 for GLOBAL, though over SESSION which is 2"
+SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
+--echo "This should go to the slow log"
+SET SESSION long_query_time=10;
+DROP EVENT long_event;
+CREATE EVENT long_event2 ON SCHEDULE EVERY 1 MINUTE DO INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(5);
+--echo "Sleep some more time than the actual event run will take"
+--sleep 7
+--echo "Check our table. Should see 2 rows"
+SELECT * FROM slow_event_test;
+--echo "Check slow log. Should see 1 row because 5 is over the threshold of 4 for GLOBAL, though under SESSION which is 10"
+SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
+DROP EVENT long_event2;
+SET GLOBAL long_query_time =@old_global_long_query_time;
+SET SESSION long_query_time =@old_session_long_query_time;
+TRUNCATE mysql.slow_log;
+DROP TABLE slow_event_test;
+
+drop database events_test;