Commit b22706e4 authored by unknown's avatar unknown
Browse files

fix for bug #16426, post fixes


mysql-test/r/events_slow_query.result:
  fix result
mysql-test/t/events_slow_query.test:
  create different event because the executor is buggy and won't catch the difference if
  the memory address does not change (will be reported as bug separately)
sql/sp_head.cc:
  this was an error which passed code review. thd->enable_slow_log could be
  changed and it should not be relied
parent 3c8432a7
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -28,6 +28,9 @@ SELECT * FROM slow_event_test;
slo_val	val
SET GLOBAL event_scheduler=1;
"Sleep some more time than the actual event run will take"
SHOW VARIABLES LIKE 'event_scheduler';
Variable_name	Value
event_scheduler	ON
"Check our table. Should see 1 row"
SELECT * FROM slow_event_test;
slo_val	val
@@ -37,7 +40,8 @@ SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
user_host	query_time	db	sql_text
"This should go to the slow log"
SET SESSION long_query_time=10;
ALTER EVENT long_event DO INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(5);
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);
"Sleep some more time than the actual event run will take"
"Check our table. Should see 2 rows"
SELECT * FROM slow_event_test;
@@ -48,7 +52,7 @@ slo_val val
SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
user_host	query_time	db	sql_text
root[root] @ localhost [localhost]	00:00:05	events_test	INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(5)
DROP EVENT long_event;
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;
+4 −2
Original line number Diff line number Diff line
@@ -40,20 +40,22 @@ 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;
ALTER EVENT long_event DO INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(5);
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_event;
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;
+2 −2
Original line number Diff line number Diff line
@@ -1412,7 +1412,7 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
  uint params = m_pcont->context_pvars();
  sp_rcontext *save_spcont, *octx;
  sp_rcontext *nctx = NULL;
  bool save_enable_slow_log;
  bool save_enable_slow_log= false;
  DBUG_ENTER("sp_head::execute_procedure");
  DBUG_PRINT("info", ("procedure %s", m_name.str));

@@ -1522,7 +1522,7 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
  if (!err_status)
    err_status= execute(thd);

  if (thd->enable_slow_log && !(m_flags & LOG_SLOW_STATEMENTS))
  if (save_enable_slow_log && !(m_flags & LOG_SLOW_STATEMENTS))
    thd->enable_slow_log= save_enable_slow_log;

  /*